2012-04-26 3 views
2

Possible Duplicate:
Lambda expressions don't work in Java 8?Не удается получить лямбда, чтобы скомпилировать в Netbeans 7.1.1 + JDK8 (JDK-8-еа-бен-b35)

Простой, бессмысленно приложение с лямбда:

public static void main(String[] args) { FileFilter java = (File f) -> f.getName().endsWith(".java"); }

Установить его использовать JDK 8. Скомпилировать/запустить отлично, если я не пытаюсь использовать лямбда.

Однако, если я делаю, я получаю:

Compiling 1 source file to ...\JavaApplication1\build\classes ...JavaApplication1\src\javaapplication1\JavaApplication1.java:20: error: lambda expressions are not supported in -source 1.8 FileFilter java = (File f) -> f.getName().endsWith(".java"); (use -source 8 or higher to enable lambda expressions) 1 error

Кажется, следует путать о том, следует ли это быть источником 8 или источника 1,8


теперь работает при использовании лямбда-конкретной версии, например, ниже работает отлично:

import java.io.File; 
import java.io.FileFilter; 
import java.util.Arrays; 

public class JavaApplication1 { 

    public static void main(String[] args) { 
     Arrays.asList(new File("c:/").listFiles((File f) -> f.getName().endsWith(".txt"))) 
     .forEach(file-> {System.out.println(file);}); 
    } 
} 
+2

Почему это закрыто? Дубликат указывал на меня, но не раньше. –

ответ

5

Для того, чтобы получить лямбда-выражения для компиляции, то вам нужно скачать версию JDK от http://jdk8.java.net/lambda/. Вы также получите красные squiggles на линиях, которые содержат лямбда-выражение, но он будет компилироваться и работать просто отлично, поэтому просто игнорируйте их :)

+1

Спасибо, это была проблема точно –

2

Download the lambda binary, а затем замените старый jdk8 на новый, поддерживающий двоичный файл.

Тогда это должно сработать.

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

  • Нет связанных вопросов^_^