java "Überschreibt eine Superklassenmethode" Fehler nach dem Importieren eines Projekts in Eclipse





6 Answers

Mit Eclipse Galileo gehen Sie zu Eclipse -> Einstellungen, wählen Sie dann Java und Compiler im Dialog.

Jetzt kann es Compiler-Compliance-Ebene bei 1,6 weiterhin anzeigen, dieses Problem wird jedoch weiterhin angezeigt. Wählen Sie nun den Link " Projektspezifische Einstellungen konfigurieren ... " und dort sehen Sie, dass das Projekt auf 1.5 gesetzt ist, und ändern Sie dieses auf 1.6. Sie müssen dies für alle betroffenen Projekte tun.

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

java android eclipse override superclass

Jedes Mal, wenn ich meine Projekte erneut in Eclipse importieren muss (wenn ich Eclipse neu installiert habe oder den Speicherort der Projekte geändert habe), sind fast alle überschriebenen Methoden nicht korrekt formatiert und verursachen den Fehler. The method must override a superclass method .

Es ist vielleicht erwähnenswert, dass dies bei Android-Projekten der Fall ist - aus welchen Gründen auch immer, die Werte des Methodenarguments sind nicht immer ausgefüllt, daher muss ich sie manuell ausfüllen. Zum Beispiel:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

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

});

wird anfänglich wie folgt bevölkert:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

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

});

Die seltsame Sache ist, wenn ich meinen Code entferne und Eclipse die Methode automatisch neu erstellt, verwendet er die gleichen Argumentnamen, die ich bereits hatte, also weiß ich nicht wirklich, wo das Problem ist, anders als die Methode automatisch zu formatieren mich.

Dies wird ein ziemlicher Schmerz, alle manuell überschriebenen Methoden manuell neu erstellen zu müssen. Wenn jemand erklären kann, warum das passiert oder wie es zu beheben ist .. Ich wäre sehr glücklich.

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




Um dieses Problem zu beheben, gehen Sie zu Ihrem Projekt Eigenschaften -> Java-Compiler -> Wählen Compiler-Compliance-Ebene bis 1.6-> Übernehmen.




Jungs in meinem Fall keine der oben genannten Lösungen.

Ich musste die Dateien im Projekt-Arbeitsbereich löschen:

  • .Projekt
  • .classpath

Und der Ordner:

  • .die Einstellungen

Dann kopierte ich die von einem ähnlichen Projekt, das vorher arbeitete. Dies hat mein defektes Projekt repariert.

Natürlich verwenden Sie diese Methode nicht, bevor Sie die vorherigen Alternativen ausprobieren!




Wenn nichts von dem oben genannten hilft, stellen Sie sicher, dass Sie eine richtige " Ausführungsumgebung " ausgewählt haben und keine "Alternative JRE".

Zu finden unter:

Projekt -> Build Path -> Bibliotheken

Wählen Sie die 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.




Das Fixieren muss einen Superklassenmethodenfehler überschreiben ist nicht schwierig. Sie müssen nur die Java-Quellversion auf 1.6 ändern, da von Java 1.6 die Annotation "@override" zusammen mit der Schnittstellenmethode verwendet werden kann. Um die Quellversion auf 1.6 zu ändern, gehen Sie folgendermaßen 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 jetzt Compiler Compliance-Stufe auf 1,6
  4. Änderungen übernehmen



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




Related