无法在Netbeans 7.1.1 + JDK8(jdk-8-ea-bin-b35)中编译lambda

Din*_*llu 2 netbeans-7 java-8

可能重复:
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)

Nik*_*tov 5

为了编译lambda表达式,您需要从http://jdk8.java.net/lambda/下载jdk的版本.您还将在包含lambda表达式的行上获得红色波形,但它将编译并运行得很好,所以只需忽略它们:)