2012-04-26 5 views
2

Possible Duplicate:
Lambda expressions don't work in Java 8?람다의 넷빈즈에서 컴파일 할 가져올 수 없습니다 7.1.1 + JDK8 (JDK-8-EA-빈-B35) 람다와

단순하고 무의미한 응용 프로그램 :

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

설정을 JDK 8을 사용하십시오. lambda를 사용하지 않으면 컴파일/실행이 잘됩니다. 내가 할 경우

그러나 내가 얻을 : 예를 들면, 람다 특정 버전을 사용하는 경우

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

1.8


작품 지금은 소스 (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

컴파일 람다 표현식을 얻기 위하여, 당신은 http://jdk8.java.net/lambda/에서 JDK의 버전을 다운로드해야합니다. 람다식이 포함 된 줄에는 붉은 색의 삐걱 거리는 소리가 나옵니다. 그러나 제대로 컴파일되고 실행될 것입니다. 따라서 무시하십시오.

+1

감사합니다. 그게 정확히 문제였습니다. –

2

바이너리를 지원하는 새 jdk8으로 교체하십시오.

그러면 작동합니다.