带有 lambda 的简单、无意义的应用程序:
public static void main(String[] args) { FileFilter java = (File f) -> f.getName().endsWith(".java"); }
将其设置为使用 JDK 8。如果我不尝试使用 lambda,则编译/运行良好。
但是,如果我这样做,我会得到:
将 1 个源文件编译到 ...\JavaApplication1\build\classes ...JavaApplication1\src\javaapplication1\JavaApplication1.java:20:错误:-source 1.8 FileFilter java = (File f) -> f 中不支持 lambda 表达式.getName().endsWith(".java"); (使用 -source 8 或更高版本来启用 lambda 表达式)1 错误
似乎对它应该是源 8 还是源 1.8 感到困惑
现在可以在使用 lambda 特定版本时工作,例如以下运行良好:
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);});
}
}