Ich habe einige neue Funktionen von Java 8 getestet und das Beispiel wie hier gezeigt in meine IDE (ursprünglich Eclipse, dann IntelliJ) kopiert
Eclipse bot keinerlei Unterstützung für Lambda-Ausdrücke, und IntelliJ meldete weiterhin einen Fehler
Lambda-Ausdrücke werden auf dieser Sprachstufe nicht unterstützt
Ich möchte wissen, ob dies ein Problem mit meiner Installation, dem Code oder dem Support ist.
java
intellij-idea
lambda
java-8
Czipperz
quelle
quelle
Antworten:
In IntelliJ IDEA:
In
File Menu
→Project Structure
→Project
, ändernProject Language Level
zu8.0 - Lambdas, type annotations etc.
Für Android 3.0+ gehen Sie
File
→Project Structure
→Module
→app
und in der Registerkarte EigenschaftenSource Compatibility
undTarget Compatibility
auf1.8 (Java 8)
Bildschirmfoto:
quelle
File Menu → Project Structure → Modules
, aber standardmäßig entspricht es dem Sprachniveau des Projekts.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
File
->Project Structure
->Module you want to support lambdas
und setzen Sie Quellkompatibilität und Zielkompatibilität auf 1.8Sie sollten die Sprachstufe des Quellcodes auch auf der Registerkarte Quelle (Modulteil) ändern.
quelle
Diese Lösung funktioniert in Android Studio 3.0 oder höher.
Ändern Sie sowohl von
Source Compatibility
alsTarget Compatibility
auch1.8
Sie können es auch direkt in der entsprechenden build.gradle-Datei konfigurieren
quelle
Ändern Sie für Intellij 13 einfach die Projektsprachenstufe selbst in die
8.0
folgende Navigation.Modul lang Ebene
Ich musste auch aktualisieren,
Modules lang level
wenn es kein Maven-Plugin für gabjava compiler
.Dies
Module lang level
würde aber automatisch behoben, wenn es bereits einemaven plugin
dafür gibt,Nach Änderungen sieht alles gut aus
quelle
In Android Studio Canary Build (3. +) können Sie Folgendes tun:
Datei -> Projektstruktur -> Im Abschnitt Module suchen gibt es Namen von Modulen Ihrer Klasse. Klicken Sie auf das Modul, in dem Sie Java auf Version 1.8 aktualisieren möchten. -> Ändern Sie "Quellkompatibilität" und "Zielkompatibilität" von 1,7 oder niedriger auf 1,8. Ändern Sie nichts anderes. -> Klicken Sie auf Übernehmen
Jetzt wird gradle erneut synchronisiert und Ihr Fehler wird entfernt.
quelle
compileOptions
Fügen Sie einfach in build.gradle Ihre App hinzu:quelle
Für die neuesten Benutzer, die Android Studio 3.0.1 oder höher verwenden. Klicken Sie einfach auf Alt + Eingabetaste und aktualisieren Sie Ihr Sprachniveau auf 8.0 - Lambdas, geben Sie Anmerkungen usw. ein.
quelle
Wenn Sie in Sprache 5 nicht unterstützt werden , überprüfen Sie Folgendes: (Für mich war es im Abschnitt Module )
quelle
7.0 unterstützt keine Lambda-Ausdrücke. Fügen Sie dies einfach Ihrem App-Gradle hinzu, um Ihr Sprachniveau auf 8.0 zu ändern:
quelle
Tatsächlich ist Eclipse-Unterstützung für Java 8 verfügbar: siehe hier und hier .
quelle
Kompilieren mit Java 8 (Lambdas usw.) in IntelliJ IDEA 15;
CTRL + ALT + SHIFT + S
oder Datei- / ProjektstrukturÖffnen Sie die Registerkarte Projekt
Stellen Sie das Project SDK auf die kompatible Java-Version (1.8) ein.
Stellen Sie die Sprachstufe des Projekts auf 8 ein
Öffnen Sie die Registerkarte Module
Stellen Sie die Sprachstufe auf 8 ein und klicken Sie auf OK
CTRL + ALT + S
oder Datei / EinstellungenErstellen, Ausführen, Bereitstellen / Compiler / Java-Compiler
Ändern Sie die Zielbytecode-Version in 1.8 und klicken Sie auf OK
quelle
Verwenden von: IntelliJ IDEA 2017.1.4 Build # IU-171.4694.23
Das Ändern des Sprachniveaus über die Registerkarte Projekteinstellungen / Projekt hat nichts bewirkt. Drücken Sie stattdessen Alt+ Enterund wählen Sie "Sprachstufe auf 8 setzen - Lambdas, geben Sie Anmerkungen ein usw." und es löste sich automatisch auf.
quelle
Wie Stephen C betonte, unterstützt Eclipse Kepler (4.3) Java 8, wenn der Patch installiert wird (Installationsanweisungen hier ).
Nach der Installation müssen Sie Ihren Projekten mitteilen, dass sie Java 8 verwenden sollen. Fügen Sie zuerst das JDK zu Eclipse hinzu:
Weisen Sie das Projekt dann an, JDK 1.8 zu verwenden:
quelle
Überprüfen Sie die folgenden Einstellungen:
Datei-> Projektstruktur-> Registerkarte Projekt.
Datei-> Projektstruktur-> Module.
Datei-> Einstellungen (oder Andere Einstellungen-> Einstellungen für neue Projekte in einer neueren Ideenversion)
Ihr Problem kann in eine der oben definierten Kategorien fallen.
quelle
Das gleiche Projekt (
Android Studio 3.3.2
,gradle-4.10.1-all.zip
,compileSdkVersion 28
,buildToolsVersion '28.0.3'
) funktioniert auf dem neuen schnellen Windows - Rechner und unterstreichtJava 8
Sachen durch rote Farbe auf dem alten Ubuntu 18.04 Laptop (jedoch Projekt ohne Fehler auf Ubuntu kompilieren).Die einzigen zwei Dinge, die ich geändert habe, um es zu zwingen, nicht mehr durch Rot zu unterstreichen, waren Ausschluss von
incremental true
unddexOptions
in der
app
- Ebenebuild.gradle
.quelle
In Intellij 14 haben die folgenden Einstellungen für mich funktioniert. Intellij14-Einstellungen
quelle
Selbst nach dem Anwenden der oben definierten projektspezifischen Einstellungen auf IntelliJ und Eclipse schlug dies für mich immer noch fehl!
Was für mich funktioniert hat, war das Hinzufügen eines Maven-Plugins mit Quelle und Ziel mit der Einstellung 1.8 in POM XML:
quelle
Mögliche Ursache Nr. 1 (wie die ersten drei Antworten auf diese Frage): Projektstruktureinstellungen
Datei> Projektstruktur> Gehen Sie unter Projekteinstellungen zu Projekt> setzen Sie das Projekt-SDK auf 1,8 (mit Version 65 oder höher, spätestens 112) und setzen Sie die Projektsprachenstufe auf 8.
Datei> Projektstruktur> Gehen Sie unter Plattformeinstellungen zu Projekt> stellen Sie sicher, dass Ihr JDK-Ausgangspfad auf 1,8 festgelegt ist (ab Version 65 ist die neueste Version 112).
Wenn dies nicht funktioniert, überprüfen Sie die Ziel-Bytecode-Version Ihres Compilers und fahren Sie mit der möglichen Ursache Nr. 2 fort.
Mögliche Ursache Nr. 2: Compiler
Die besten Wünsche :)
quelle
Für mich hat keine der angebotenen Lösungen funktioniert.
Dies sollte Ihr letzter Ausweg sein: -> Öffnen Sie die IML-Datei Ihres Projekts und ändern Sie LANGUAGE_LEVEL in JDK_1_8 oder eine beliebige Version. -> Wenn dies nicht geholfen hat, sollten Sie "JDK" in Ihrem Projektstammverzeichnis suchen und die Datei mit den Versionseinstellungen suchen und auf Ihre bevorzugte Version einstellen.
quelle
Strg + Alt + Umschalt + S und dann aus dem Projekt die Sprachstufe 1.8 auswählen. Weitere Informationen zu Lambda-Ausdrücken finden Sie hier
quelle
Unterstützung von Ecplise für Lambda-Ausdrücke:
quelle
Überprüfen Sie zunächst die von Ihnen verwendete JDK-Version. Sie sollte höher als 1,8 sein.
Wenn dies der Fall ist, fahren Sie mit den folgenden Schritten fort.
Ändern Sie die Sprachstufe des Projekts und der Module in Intellij .
Projekt
quelle
Diese Antwort funktioniert nicht für neue aktualisierte Intelligenz ... für neue Intelligenz.
Gehen Sie zu -> Datei -> Projektstruktur -> Globale Bibliotheken ==> auf JDK 1.8 oder höher eingestellt.
auch Datei -> Projektstruktur ---> Projekte ===> "Projektsprachenhandbuch" auf 8 setzen
auch Datei -> Projektstruktur ---> Projekt SDK ==> 1.8
Dies sollte den Lambda-Ausdruck für Ihr Projekt aktivieren.
quelle