Возможный дубликат:
лямбда-выражения не работаете с Java 8?
Простое бессмысленное приложение с лямбдой:
public static void main(String[] args) { FileFilter java = (File f) -> f.getName().endsWith(".java"); }
Настройте его на использование JDK 8. Компилируется/работает нормально, если я не пытаюсь использовать лямбду.
Однако, если я это сделаю, я получу:
Компиляция 1 исходного файла в ...\JavaApplication1\build\classes ...JavaApplication1\src\javaapplication1\JavaApplication1.java:20: ошибка: лямбда-выражения не поддерживаются в -source 1.8 FileFilter java = (File f) -> f .getName().endsWith(".java"); (используйте -source 8 или выше, чтобы включить лямбда-выражения) 1 ошибка
Кажется, смущен тем, должен ли это быть источник 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);});
}
}