Warum beschwert sich Eclipse über @Override bei Schnittstellenmethoden?
Ich habe ein bestehendes Projekt, das mit @Override
auf Methoden, überschreiben Schnittstelle Methoden, sondern als Oberklasse-Methoden. Ich kann nicht ändern, dies im code, aber ich würde gerne Eclipse, um aufhören zu jammern über die Anmerkung, wie kann ich trotzdem bauen mit Maven.
Wie würde ich mich über Deaktivierung dieser Fehler?
Hinweis: Aufgrund der Projekt-Anforderungen, die ich brauche zu kompilieren Java 1.5.
Kommentar zu dem Problem
Aber es scheint an der Quelle richtet sich an Java 6?
In der Tat. Java 5 war eine späte Anforderung für mac-Unterstützung.
InformationsquelleAutor der Frage Stefan Kendall | 2009-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mithilfe der
@Override
annotation an Methoden, die bei der Umsetzung dieser deklariert eine Schnittstelle ist nur gültig von Java 6 an. Es ist ein Fehler in Java 5.Stellen Sie sicher, dass Ihre IDE-Projekte werden setup eine Java 6 JRE, und dass die "Quelle " Kompatibilität" auf 1.6 oder höher. Öffnen Sie die Fenster " > "Voreinstellungen" - dialog, und navigieren Sie zu Java - > Compiler. Dort können Sie die "Compiler compliance level" auf 1,6.
Denken Sie daran, dass Eclipse überschreiben können diese globalen Einstellungen für ein bestimmtes Projekt, so überprüfen Sie diese auch.
Update:
Den Fehler unter Java 5 ist nicht nur mit Eclipse; mit
javac
direkt von der Befehlszeile aus geben Sie den gleichen Fehler. Es ist keine gültige Java-5 source-code.Jedoch können Sie die
-target 1.5
option JDK-6 istjavac
, die produzieren eine Java 5 version, die class-Datei aus der Java-6-Quellcode.InformationsquelleAutor der Antwort erickson
Project->Properties->java compiler->
Ermöglichen projektspezifische Einstellungen -ja
Compiler compliance - 1.6
generierten class-Dateien und source-Kompatibilität - 1.5
InformationsquelleAutor der Antwort mitko
Prüfen Sie außerdem, ob das Projekt Facette. Die java-version kann überschrieben werden, es.
InformationsquelleAutor der Antwort gdoumenc
Könnte man ändern, die compiler-Einstellungen zu akzeptieren Java-6-syntax, jedoch generieren von Java-5-Ausgabe (soweit ich mich erinnere). Und die "Generierten class-Dateien-Kompatibilität" ein wenig niedriger, wenn nötig, durch Ihre Laufzeit.
Update: ich habe Eclipse, aber es beschwert sich, wenn ich source-Kompatibilität zu 1.6 und Klasse die Kompatibilität zu 1.5. Wenn 1.6 nicht erlaubt, ich in der Regel manuell auskommentieren der beanstandeten @Override-Annotationen in der Quelle (die nicht helfen, Ihren Fall).
Update2:
Wenn Sie nur manuell erstellen, können Sie schreiben ein kleines Programm, das Kopien das ursprüngliche Projekt in eine neue, Streifen @Override-Annotationen aus den java-Quellen und Sie drücken Sie einfach auf Clean-Projekt in Eclipse.
InformationsquelleAutor der Antwort akarnokd
Projekt-spezifischen Einstellungen aktiviert werden kann. Wählen Sie Ihr Projekt
Project > Properties > Java Compiler
,uncheck
dieEnable project specific settings
oder ändernJdk 1.6
und oben nicht vergessen, die entsprechendenJRE
.Sofern es nicht funktioniert, entfernen Sie Ihr Projekt aus eclipse 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 eclipse. Es war für michInformationsquelleAutor der Antwort Henry
Können Sie auch versuchen, Retroweaver zu erstellen, die Java5-version von Java6-Klassen.
InformationsquelleAutor der Antwort
Verwenden, Eclipse suchen und ersetzen, entfernen Sie alle Instanzen von "@Override". Dann fügen Sie wieder die non-interface überschreibt mit "Clean Up".
Schritte:
InformationsquelleAutor der Antwort Peter Tseng
Ich Verstand Ihr problem, ändern Sie das jdk von Ihrem jdk greaterthan 1.5
InformationsquelleAutor der Antwort Ravi Kumar Ravanam
Konfigurieren, dass der IDE-Projekte werden setup eine Java 6 JRE oder höher manchmal nicht, entfernen Sie die eclipse-Fehler. Für mich ein neu starten der Eclipe IDE geholfen.
InformationsquelleAutor der Antwort IstaLibera
Sogar nach dem ändern der compiler-compliance-Einstellung zu 1.6 oder 1.7 aus
Registerkarte "windows", dann prefernces, dann java, dann compiler und Einstellung der
compiler compliance, war ich immer noch dieses Problem. Die Idee ist, dass wir
gehen müssen Sie den Projekt-Ordner, Rechte Maustaste, Java und compiler festgelegt
compliance auf 1.6 oder größere. Dieser arbeitete für mich.
InformationsquelleAutor der Antwort Ranjan