2015-09-02 14 views
3

我最近更新我的Java到第8版lambda表達式,並試圖一些lambda表達式,但它給錯誤。錯誤表達的非法啓動,而在Java中使用8

我的代碼

String[] st = {"ak","ss","dd"}; 

Arrays.asList(st).forEach(data -> System.out.println(data)); 

控制檯的輸出是

PS E:\> javac .\Lambdas.java 
.\Lambdas.java:11: error: illegal start of expression 
        Arrays.asList(st).forEach(data -> System.out.println(data)); 
               ^
1 error 
PS E:\> java -version 
java version "1.8.0_45" 
Java(TM) SE Runtime Environment (build 1.8.0_45-b15) 
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 

這很奇怪,因爲我有java的8如上所見,但我未編譯代碼。

有什麼我做錯了嗎?

+0

至於IM知道' - >'是不是在java中有效語法。 –

+1

@Aʟᴀɢᴀʀᴏs:使用Lambda表達式時,它位於Java8中。除非有之間的空間 - 和> – Stultuske

+3

只是一個鏡頭在黑暗中...但你可以嘗試的javac -version – fdreger

回答

1

這是編譯器的問題。在我的環境變量中,我指向舊的Java 7版本。將其更改爲8後編譯代碼。

+0

我想你指的是JAVA_HOME環境變量 – buherator

相關問題