2016-01-02 1 views
0
import java.util.function.Consumer; 

public class test { 
    public static void main(String[] args) { 
     Consumer<String> c = (x) --> System.out.println(x.toLowerCase()); 
     c.accept("Java2s.com"); 
    } 
} 

avec l'erreur:Pourquoi ce ne fonctionne pas en Java

Exception in thread "main" java.lang.Error: Unresolved compilation problems: x cannot be resolved to a variable x cannot be resolved at test.main(test.java:5)

Mais dans tous les documents officiels, que cela fonctionne ... Quelqu'un pourrait-il me aider?

+0

Cela n'a rien à voir avec Eclipse et tout ce qui concerne Java et votre syntaxe Java incorrecte. N'essayez jamais d'exécuter du code non compilable. –

Répondre

6

Remplacez --> par -> et cela devrait fonctionner. Cela ne fonctionnerait que dans java8 et plus tard. C'est une façon de définir l'expression lambda qui consommerait une chaîne (dans votre cas) et changerait la casse en plus bas.

+1

Merci, mais quand je l'ai changé, il mentionne également avec la même erreur et m'a dit que je dois changer -> à -> – Shadow