2017-03-02 7 views
-1

Wie im Titel verwende, ich versuche, Lambda zu kompilieren, ich benutze 1,8 jdk, und habe keine Ahnung.Warum Quelle ist 1.6, wenn ich 1.8

Fehlerprotokoll hier: enter image description here

Beweis, dass ich wirklich 1.8 bekam:

Teil1:

enter image description here

Teil2: enter image description here

Irgendwelche Ideen, warum ich habe habe ein Problem wie dieses, Lambda sieht aus wie th ist, aber ich bin sicher, es ist in Ordnung, weil ich Code aus einem Tutorial mache.

public Topic getTopic(final String id){ 
    topics.stream().filter(t -> t.getId().equals(id)).findFirst().get(); 
} 

Ich habe versucht, eine Lösung zu finden, aber wirklich gescheitert, deshalb schreibe ich hier. ps. Entschuldigung für mein schlechtes Englisch :)

+0

Blick http://stackoverflow.com/questions/22703412/java-lambda-expressions-not-supported-at-this- Sprachniveau – pedroct92

Antwort

2

Sie verwenden ein Java 8 JDK, aber die Sprachquellenebene Ihres Projekts ist immer noch auf Java 6 eingestellt (wahrscheinlich aus Gründen der Kompatibilität). Daher wird das JDK 8 javac im Kompatibilitätsmodus für Java 6 aufgerufen, wodurch es Ihren Code ablehnt, da dieser Java 8-Funktionen verwendet. Wahrscheinlich möchten Sie die Sprachstufe in den Projekteinstellungen oder pom.xml beheben und dann neu kompilieren.

Sie können Ihre pom.xml bearbeiten, um dies zu beheben. Siehe die Maven docs für Details, wie dies zu tun, aber Sie wahrscheinlich wollen diese:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
Verwandte Themen