Ich versuche, eine java.lang.function.Function
in meiner Java 8-Codebasis zu verwenden, erhalte jedoch weiterhin den folgenden Fehler in Intellij.
Verwendung der als @since 1.6+ dokumentierten API Bei dieser Überprüfung werden alle Verwendungen von Methoden ermittelt, deren Dokumentation das @since-Tag enthält. Dies kann nützlich sein, wenn die Entwicklung unter einer neueren SDK-Version als Zielplattform für die Produktion durchgeführt wird
Ich habe anscheinend die richtigen Projekt- und Compilereinstellungen
Projekteinstellungen: (Datei -> Projektstruktur)
Project Settings -> Project -> Project SDK = Java 1.8
Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc
Compiler-Einstellungen: (Datei -> Einstellungen)
Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8
Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8
Was ist das Problem?
quelle
Project default
Sprachstufe verwendet (auf derSources
Registerkarte).Project Settings
wird gefunden inFile -> Project Structure
Wenn Sie maven verwenden, fügen Sie die folgende Zeile in Ihre Konfigurationsdatei pom.xml ein und importieren oder erstellen Sie sie erneut aus maven.
Andernfalls wählen Sie den Java-Compiler und die Sprachstufe unter dem Pfad aus.
Datei> Projektstruktur> Projekteinstellungen> Module> Modulname> Quellen> Sprachniveau> Wählen Sie das gewünschte aus.
Ändern Sie das Sprachniveau von hier aus: -
quelle
Wenn Sie Maven verwenden und Ihre
pom.xml
Projekteigenschaften korrekt konfiguriert sindSie können Maven-Parameter erneut in das
intellij-idea
Projekt importieren. Klicken Sie mit der rechten Maustaste auf den Projektstammeintrag,Maven -> Reimport
der sich unten befindet.quelle
Ich habe es einfach wie folgt behoben:
Klicken Sie mit der rechten Maustaste auf das Projekt -> Moduleinstellungen öffnen -> Module -> Quellen -> 8 oder höher
Und dann
Wenn der Fehler weiterhin auftritt und maven verwendet wird , müssen Sie die Build-Konfiguration in Folgendes hinzufügen
pom.xml
:quelle
Datei> Einstellungen> Erstellen, Ausführen, Bereitstellen> Java Compiler
Ändern Sie die Zielbytecode-Version des Moduls, für das Sie arbeiten, in 1.8.
Wenn Sie Maven verwenden
Fügen Sie das Compiler-Plugin zu pom.xml unter dem Projektknoten der obersten Ebene hinzu:
quelle
Wenn Sie Gradle verwenden, vergessen Sie nicht, sicherzustellen, dass Folgendes auf 1,8 und nicht auf 1,5 eingestellt ist (zum Beispiel aus bizarren Gründen in Intelij standardmäßig 1,5), unabhängig davon, was Sie auf Projektebene tun, um den Compiler festzulegen Diese Einstellung führt dazu, dass Sie weiterhin Probleme mit Java 8-Funktionen haben, die nicht erkannt werden:
quelle
Möglicherweise hat Ihre Konfiguration des Repositorys Eigenschaften einschließlich der Compilerversion.
settings.xml
Datei untersuchen .quelle
Es gibt einen anderen Ort, der dieses Problem verursachen könnte, unabhängig davon, ob Sie Maven oder Gradle verwenden oder nicht.
In
Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn't available at the configured language level
wird der Standardwert (glaube ich) auf gesetztRespecting to project language level settings
, aber er kann auf gesetzt werdenHigher than:
, wodurch die Projekteinstellungen ignoriert werden.Das heißt, wenn Sie den Anweisungen in den anderen Antworten folgen und die Sprachstufe Ihres Projekts auf beispielsweise 8 einstellen
Higher than: 7
, die Inspektion jedoch auf eingestellt ist, wird IDEA immer noch einen Anfall auslösen.quelle