2015-09-02 3 views
3

Я недавно обновил свою java до 8-й версии и пробовал некоторые Lambdas, но это дает ошибку.Ошибка незаконного запуска выражения при использовании lambdas в 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

Насколько я знаю '->' недопустимый синтаксис в java. –

+1

@ Aʟᴀɢᴀʀᴏs: он используется в Java8 при использовании выражений лямбда. Если пробел между - и> – Stultuske

+3

просто выстрел в темноте ... но вы могли бы попробовать javac -version – fdreger

ответ

1

Это проблема с компилятором. В моей переменной окружения я указывал на старую версию java 7. После смены кода на 8 скомпилированный код.

+0

Я полагаю, вы имеете в виду переменную окружения JAVA_HOME – buherator

Смежные вопросы