6 Stimmen

Java: Ist die Override-Annotation mit modernen IDEs nutzlos?

Bin nur ich das, oder ist die Override-Annotation in Java tatsächlich nutzlos, wenn man in einer anständigen IDE programmiert?

Ja, ich verstehe, dass die Override-Annotation verhindert, dass ich versehentlich eine Supermethode nicht überschreibe, indem ich den Methodennamen falsch schreibe oder die Methodenparameter durcheinander bringe. Jedoch sagt mir der gesunde Menschenverstand, dass dies in modernen IDEs sehr unwahrscheinlich ist, aus folgenden Gründen:

  • Die IDE zeigt ein Marker (z.B. ein kleines Symbol) auf der linken Seite des Editors an, der anzeigt, ob die Methode überschrieben wird/überschreibt. Daher ist keine explizite Override-Annotation erforderlich, um die Überschreibungsabsicht anzuzeigen.
  • Wenn ich kurz davor bin, eine Methode umzubenennen und ich einen solchen Überschreibungsmarker sehe, bearbeite ich niemals direkt den Methodennamen - ich greife instinktiv nach der Tastenkombination, die den Umbenennungsassistenten der IDE öffnet. Ebenso, wenn ich die Methodensignatur ändern möchte und den Überschreibungsmarker sehe, verwende ich instinktiv den Methodensignaturassistenten der IDE anstatt es von Hand zu machen (außer bei sehr einfachen Fällen). Methodennamen und Signaturen werden also fast immer korrekt geändert, so dass das Hinzufügen von Override-Annotationen (meiner Meinung nach) wenig mehr als eine paranoide und nutzlose Sicherheitsprüfung ist - genau wie das übermäßige Verwenden von 'final'.

Sicher, wenn man seinen Java-Code in Notepad oder was auch immer schreiben muss, hilft die Override-Annotation offensichtlich. Aber mein Punkt ist, in einer modernen IDE ist die erhöhte Sicherheit, die diese Annotation bietet, den Rückgang in der Lesbarkeit nicht wert. Irgendwelche Meinungen?

6voto

aldrin Punkte 4197

Nun müssen Sie sich darauf verlassen, diese Marker zu sehen. Es gibt ein menschliches Element und Menschen sind fehlbar. Aus persönlicher Erfahrung neige ich oft dazu, diese Warnungen und 'Marker' zu übersehen. Auf der anderen Seite ist der Compiler viel genauer und wenn Sie eine Methode mit Überschreiben annotieren, wird er sicherstellen, dass Sie wirklich eine Methode der Oberklasse überschreiben.

6voto

Peter Lawrey Punkte 511323

Wenn Sie etwas @Override, das nicht überschrieben ist, ist dies offensichtlich in einem IDE. Wenn Sie jedoch eine Methode entfernen oder ihre Signatur in einem übergeordneten Element ändern, ist nicht offensichtlich, an welchen Stellen diese Methode-Signatur verwendet wird. Die Verwendung eines IDE zum Entfernen/Ändern wird helfen, aber Sie erhalten möglicherweise nicht jede Referenz, wenn das richtige Modul/Version nicht ausgecheckt und verwendet wird.

4voto

irreputable Punkte 43667

Ja, es ist ziemlich nutzlos. Für Menschen, die es nützlich finden, ist das gut für sie. Aber die Szenarien, die sie verwendet haben, um es zu rechtfertigen, sind nicht realistisch. Tatsache ist, viele verwenden @Override nicht und haben niemals ein Problem damit gehabt, das es angeblich lösen soll.

Python-Typ: Du hast nicht die Tastenkombination (Strg-O in IntelliJ) erwähnt, wenn du eine Methode überschreibst. Ich tippe nie manuell die Signatur der Methode, die ich überschreibe, ein, also gibt es von Anfang an keinen Tippfehler.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X