Java 8-Kompatibilitätsproblem mit LogManager: Verständnis des „AnnotatedElement“-Auflösungsfehlers
Beim Übergang eines Java-Projekts von JDK 7 auf JDK 8, Möglicherweise tritt bei der Verwendung von LogManager ein besonderer Fehler auf. Insbesondere die Deklaration von „private static Logger log = LogManager.getLogger(Class1.class);“ in Ihrer Klasse wird den folgenden Fehler auslösen:
The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
Das zugrunde liegende Problem
Introducing JDK 8 wird mit Java 8-spezifischen Klassendateien geliefert, die neuere Funktionen wie enthalten Standardmethoden und statische Schnittstellenmethoden. Um erfolgreich Java-Quellcode zu kompilieren, der auf diese neuen Funktionen verweist, müssen Sie Ihre IDE oder jedes andere Codeverarbeitungstool/Framework, das über einen eigenen Compiler verfügt (wie Eclipse), auf eine mit Java 8 kompatible Version aktualisieren.
Die Rolle des Compilers
Der Compiler spielt eine entscheidende Rolle beim Laden und Verarbeiten der neueren Klassendateien im Zusammenhang mit Java 8. Durch die Aktualisierung Ihres Compilers stellen Sie sicher, dass er diese Klassendateien korrekt interpretieren kann und Kompilieren Sie wiederum Ihren Code und verweisen Sie darauf.
Verhalten von Eclipse
Es ist wichtig zu beachten, dass Eclipse möglicherweise nicht klar zwischen Klassen unterscheidet, die es nicht finden kann, und Klassen, bei denen Fehler auftreten versucht zu lesen. Wenn also „«Klassenname» kann nicht aufgelöst werden“ gemeldet wird, bezieht sich dies möglicherweise auf eines der beiden Szenarios.
Behebung des Problems
Die Lösung ist einfach: Aktualisieren Sie Ihre IDE oder Tool auf die neueste Version mit Java 8-Unterstützung. Dadurch stellen Sie Ihrem Compiler die notwendigen Fähigkeiten zur Verfügung, um die Java 8-Klassendateien zu verstehen und Ihren Code erfolgreich zu kompilieren.
Das obige ist der detaillierte Inhalt vonWarum löst JDK 8 bei LogManager einen Auflösungsfehler „AnnotatedElement' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!