it-swarm.com.de

'Muss eine Superklasse-Methode überschreiben' Fehler nach dem Importieren eines Projekts in Eclipse

Immer wenn ich meine Projekte erneut in Eclipse importieren muss (wenn ich Eclipse neu installiert oder den Speicherort der Projekte geändert habe), werden fast alle meiner überschriebenen Methoden nicht korrekt formatiert, was den Fehler verursacht:

Die Methode muss eine übergeordnete Klasse überschreiben

Es kann erwähnenswert sein, dass dies bei Android -Projekten der Fall ist - aus welchem ​​Grund auch immer, die Werte der Methodenargumente werden nicht immer ausgefüllt, daher muss ich sie manuell selbst ausfüllen. Zum Beispiel:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

wird anfangs wie folgt ausgefüllt:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

Das Seltsame ist, wenn ich meinen Code entferne und Eclipse die Methode automatisch neu erstellen lasse, werden die gleichen Argumentnamen verwendet, die ich bereits hatte, sodass ich nicht wirklich weiß, wo das Problem liegt, außer dass die Methode automatisch formatiert wird mich.

Das wird ziemlich mühsam, wenn ich ALLE meine überschriebenen Methoden manuell neu erstellen muss. Wenn jemand erklären kann, warum dies passiert oder wie es behoben werden kann, würde ich mich sehr freuen.

Vielleicht liegt es an der Art und Weise, wie ich die Methoden formatiere, die sich in einem Argument einer anderen Methode befinden?

1216
Tim H

Eclipse verwendet standardmäßig Java 1.5, und Sie haben Klassen, die Schnittstellenmethoden implementieren (die in Java 1.6 mit @Override, aber in Java 1.5 mit Anmerkungen versehen werden können kann nur auf Methoden angewendet werden, die eine übergeordnete Klasse überschreiben.

Gehen Sie zu Ihren Projekt-/IDE-Einstellungen und setzen Sie die Compiler-Ebene Java auf 1.6. Stellen Sie außerdem sicher, dass Sie JRE 1.6 auswählen, um Ihr Programm in Eclipse auszuführen.

1414
alphazero

Mit Eclipse Galileo gehen Sie zum Menüpunkt Eclipse -> Einstellungen und wählen im Dialog Java und Compiler.

Jetzt wird möglicherweise immer noch die Kompatibilitätsstufe des Compilers bei 1.6 angezeigt, dieses Problem tritt jedoch weiterhin auf. Wählen Sie nun den Link " Projektspezifische Einstellungen konfigurieren ... " und dort sehen Sie, dass das Projekt auf 1,5 eingestellt ist. Ändern Sie dies nun auf 1.6. Sie müssen dies für alle betroffenen Projekte tun.

Diese byzantinische Menü-/Dialogoberfläche ist typisch für das schlechte UI-Design von Eclipse.

306
Paul

Für den Fall, dass dies jemand anderem passiert, der sowohl Alphazero als auch Pauls Methode ausprobiert hat und immer noch nicht funktioniert hat.

Für mich hat Eclipse die Kompilierungsfehler auch nach dem Ausführen eines Projekts "zwischengespeichert".> Bereinigen ...

Ich musste das Häkchen bei Projekt> Automatisch erstellen entfernen, dann ein Projekt> Bereinigen ausführen und dann erneut erstellen.

Versuchen Sie im Zweifelsfall auch, Eclipse neu zu starten. Dies kann viele umständliche, unerklärliche Fehler beheben.

76
Rollin_s

Um dieses Problem zu beheben, gehen Sie zu Ihren Projekteigenschaften -> Java Compiler -> Wählen Sie die Compiler-Kompatibilitätsstufe 1.6-> Übernehmen.

41
false9striker

Die Antwort von Paul hat für mich teilweise funktioniert. Ich hatte damals noch einen Fehler. Ich musste also zusätzlich zu Properties-> Project Facets gehen und dort die Java-Version von 1.5 auf 1.6 setzen.

Vielleicht hilft das ja.

21
ulrich

Leute, in meinem Fall hat keine der oben genannten Lösungen funktioniert.

Ich musste die Dateien im Projektarbeitsbereich löschen:

  • .Projekt
  • .classpath

Und der Ordner:

  • .die Einstellungen

Dann habe ich die aus einem ähnlichen Projekt kopiert, das vorher gearbeitet hat. Damit konnte ich mein kaputtes Projekt reparieren.

Verwenden Sie diese Methode natürlich nicht, bevor Sie die vorherigen Alternativen ausprobiert haben !.

13
will824

Wenn nichts von alledem hilft, stellen Sie sicher, dass Sie eine richtige "Ausführungsumgebung" ausgewählt haben und keine "alternative JRE ".

Zu finden unter:

Projekt -> Pfad erstellen -> Bibliotheken

Wählen Sie den JRE System Library und klicken Sie auf Edit....

Wenn "Alternate JRE ..." ausgewählt ist, ändern Sie es in eine passende "Ausführungsumgebung" wie JavaSE-1.8 (jre1.8.0_60). Keine Ahnung warum, aber das wird es lösen.

12
Blauhirn

Dies ist meine zweite Begegnung mit diesem Problem. das erste mal hat es laut der empfehlung von alphazero geklappt. Aber beim zweiten Mal, als ich auf 1.6 gesetzt habe, funktioniert es nicht wie 'CACHE' dieser Fehler, nachdem er bereinigt und neu erstellt wurde.

Versuche 'Build Automatically' auszuschalten, wie Rollin_s sagte -> Fehler immer noch hier!

Also habe ich das Problemprojekt (bereits auf 1.6 gesetzt) ​​aus dem Paket-Explorer entfernt und erneut importiert -> es startet eine Neuerstellung und diesmal ohne Fehler

Hoffe das hilft jemandem

10
ob.yann

Das Korrigieren muss einen übergeordneten Methodenfehler überschreiben ist nicht schwierig. Sie müssen lediglich die Quellversion von Java auf 1.6 ändern, da die Annotation von Java 1.6 @Override zusammen mit der Schnittstellenmethode verwendet werden kann. Um die Quellversion auf 1.6 zu ändern, gehen Sie wie folgt vor:

  1. Wählen Sie Projekt, Rechtsklick, Eigenschaften
  2. Wählen Sie Java Compiler und aktivieren Sie das Kontrollkästchen "Projektspezifische Einstellungen aktivieren"
  3. Stellen Sie nun die Kompatibilitätsstufe des Compilers auf 1.6
  4. Änderungen übernehmen
9
Sunil

In meinem Fall ist dieses Problem aufgetreten, als ich ein Maven-Projekt in Eclipse importiert habe. Um dies zu lösen, habe ich in pom.xml Folgendes hinzugefügt:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Gehen Sie dann im Kontextmenü des Projekts zu "Maven -> Update Project ..." und drücken Sie OK.

Das ist es. Hoffe das hilft.

6
mljrg

In meinem Fall funktioniert keine der obigen Lösungen. Ich muss meinen Quellcode in einen anderen Ordner auschecken. Wählen Sie in Eclipse "Datei"> "Arbeitsbereiche wechseln"> "Andere ..." und importieren Sie den Code in die neuen Arbeitsbereiche. es funktioniert danach.

5

Dies passiert, wenn Ihr Maven-Projekt eine andere Compiler-Konformitätsstufe verwendet und Eclipse IDE eine andere Compiler-Konformitätsstufe verwendet. Um dies zu beheben, müssen wir die Compiler-Kompatibilitätsstufe des Maven-Projekts auf die Stufe ändern, die IDE verwendet.

1) Zum Anzeigen der in Eclipse IDE verwendeten Compiler-Kompatibilitätsstufe Java

*) Fenster -> Einstellungen -> Compiler -> Compiler-Konformitätsstufe: 1.8 (oder 1.7, 1.6 , ect)

2) So ändern Sie die Java Compiler-Kompatibilitätsstufe des Maven-Projekts

*) Gehen Sie zu "Projekt" -> "Eigenschaften" -> Wählen Sie "Java Compiler" -> Ändern Sie die Compiler-Kompatibilitätsstufe: 1.8 (oder 1.7, 1.6 , ect)

0
HashanR