Ich habe ein vorhandenes Projekt, das @Override
Methoden verwendet, die Schnittstellenmethoden überschreiben , anstatt Methoden der Oberklasse. Ich kann dies im Code nicht ändern, aber ich möchte, dass Eclpse sich nicht mehr über die Annotation beschwert, da ich immer noch mit Maven bauen kann.
Wie würde ich diesen Fehler deaktivieren?
Hinweis: Aufgrund der Projektanforderungen muss ich für Java 1.5 kompilieren.
java
eclipse
interface
annotations
syntax-error
Stefan Kendall
quelle
quelle
Antworten:
Die Verwendung der
@Override
Annotation für Methoden, die die von einer Schnittstelle deklarierten implementieren, ist nur ab Java 6 gültig. Es ist ein Fehler in Java 5.Stellen Sie sicher, dass Ihre IDE-Projekte für die Verwendung einer Java 6-JRE eingerichtet sind und dass die "Quellkompatibilität" auf 1.6 oder höher eingestellt ist:
Denken Sie daran, dass Eclipse diese globalen Einstellungen für ein bestimmtes Projekt überschreiben kann. Überprüfen Sie daher auch diese.
Aktualisieren:
Der Fehler unter Java 5 liegt nicht nur bei Eclipse. Wenn Sie
javac
direkt von der Befehlszeile aus verwenden, erhalten Sie den gleichen Fehler. Es ist kein gültiger Java 5-Quellcode.Sie können die
-target 1.5
Option jedoch für JDK 6 angebenjavac
, wodurch eine Java 5-Versionsklassendatei aus dem Java 6-Quellcode erstellt wird.quelle
Gehen Sie wie folgt vor:
Projekt -> Eigenschaften -> Java-Compiler ->
quelle
Überprüfen Sie auch, ob das Projekt eine Facette hat. Die Java-Version kann dort überschrieben werden.
quelle
Projektspezifische Einstellungen können aktiviert werden. Wählen Sie Ihr Projekt aus
Project > Properties > Java Compiler
,uncheck
dasEnable project specific settings
oder ändern SieJdk 1.6
und vergessen Sie nicht das entsprechendeJRE
.Incase es nicht funktioniert, Ihr Projekt von Eclipse entfernen, löschen
.settings folders
,.project
,.classpath
Dateien.clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project
und Sonnenfinsternis. Es hat bei mir funktioniertquelle
Sie können die Compilereinstellungen ändern, um die Java 6-Syntax zu akzeptieren, aber eine Java 5-Ausgabe generieren (wie ich mich erinnere). Stellen Sie die Kompatibilität mit generierten Klassendateien etwas niedriger ein, wenn dies für Ihre Laufzeit erforderlich ist. Aktualisieren : Ich habe Eclipse überprüft, aber es beschwert sich, wenn ich die Quellkompatibilität auf 1.6 und die Klassenkompatibilität auf 1.5 setze. Wenn 1.6 nicht erlaubt ist, kommentiere ich normalerweise die beleidigenden @ Override-Anmerkungen in der Quelle manuell aus (was Ihrem Fall nicht hilft).
Update2: Wenn Sie nur manuell erstellen, können Sie ein kleines Programm schreiben, das das ursprüngliche Projekt in ein neues kopiert, @ Override-Annotationen aus den Java-Quellen entfernt und einfach in Eclipse auf Projekt bereinigen klickt.
quelle
Sie können auch Retroweaver ausprobieren, um die Java5-Version aus Java6-Klassen zu erstellen.
quelle
Verwenden Sie Eclipse, um alle Instanzen von "@Override" zu suchen und zu ersetzen (zu entfernen). Fügen Sie dann die Nicht-Schnittstellen-Überschreibungen mit "Aufräumen" wieder hinzu.
Schritte:
quelle
Ich habe Ihr Problem verstanden, ändern Sie Ihr JDK von Ihrem JDK auf größer als 1,5
quelle
Durch die Konfiguration, dass die IDE-Projekte für die Verwendung von Java 6 JRE oder höher eingerichtet sind, wird der Eclipse-Fehler manchmal nicht behoben. Für mich hat ein Neustart der Eclipe IDE geholfen.
quelle
Selbst nachdem ich die Compiler-Konformitätseinstellung von der Windows-Registerkarte auf 1.6 oder 1.7 geändert hatte, dann Einstellungen, dann Java, dann Compiler und das Festlegen der Compiler-Konformität, hatte ich immer noch dieses Problem. Die Idee ist, dass wir den Projektordner aufrufen, mit der rechten Maustaste auf Java klicken und die Compiler-Konformität auf 1.6 oder höher einstellen müssen. Das hat bei mir funktioniert.
quelle