2012-04-26 3 views
2

Possible Duplicate:
Lambda expressions don't work in Java 8?Impossible d'obtenir lambda de compiler dans Netbeans + JDK8 7.1.1 (jdk-8-ch-bin-B35)

simple, app inutile avec un lambda: Set

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

il pour utiliser JDK 8. Compile/Fonctionne bien si je n'essaie pas d'utiliser un lambda.

Toutefois, si je puis-je obtenir:

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

semble être confus quant à savoir si elle doit être source de 8 ou de la source 1,8


fonctionne maintenant lorsque vous utilisez la version spécifique de lambda, par exemple ci-dessous fonctionne très bien:

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

Pourquoi était-ce fermé? Le duplicata pointé est venu après le mien, pas avant. –

Répondre

5

Afin d'obtenir des expressions lambda pour compiler, vous devez télécharger la version de JDK de http://jdk8.java.net/lambda/. Vous obtiendrez également des gribouillis rouges sur les lignes qui contiennent l'expression lambda, mais il compilera et fonctionnera très bien, alors ignorez-les :)

+1

Merci, c'était exactement le problème –

Questions connexes