可能重复:
Lambda表达式在Java 8中不起作用?
简单,毫无意义的应用程序与lambda:
public static void main(String [] args){FileFilter java =(File f) - > f.getName().endsWith(".java"); }
将其设置为使用JDK 8.如果我不尝试使用lambda,则编译/运行正常.
但是,如果我这样做,我得到:
将源文件编译为...\JavaApplication1 \建立\类... JavaApplication1的\ src\javaapplication1\JavaApplication1.java:20:错误:lambda表达式没有在-source 1.8的FileFilter的Java =(文件F)的支持 - >˚F .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);});
}
}
Run Code Online (Sandbox Code Playgroud)
为了编译lambda表达式,您需要从http://jdk8.java.net/lambda/下载jdk的版本.您还将在包含lambda表达式的行上获得红色波形,但它将编译并运行得很好,所以只需忽略它们:)
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |