Es scheint, dass sich die Weisheit hier ändert. Heute habe ich installiert IntelliJ IDEA 9 und stellte fest, dass sein " fehlende @Override-Inspektion " fängt jetzt nicht nur implementierte abstrakte Methoden, sondern auch implementierte Schnittstellenmethoden. In der Codebasis meines Arbeitgebers und in meinen eigenen Projekten habe ich lange Zeit die Gewohnheit gehabt, @Override nur für erstere zu verwenden - implementierte abstrakte Methoden. Wenn ich diese Gewohnheit jedoch überdenke, wird der Vorteil der Verwendung von Annotationen in beiden Fällen deutlich. Obwohl es ausführlicher ist, schützt es vor dem zerbrechliche Basisklasse Problem (nicht so gravierend wie in C++), bei dem sich der Name der Schnittstellenmethode ändert und die Methode, die sie implementieren soll, in einer abgeleiteten Klasse verwaist.
Natürlich ist dieses Szenario größtenteils übertrieben; die abgeleitete Klasse würde nicht mehr kompiliert werden, da ihr nun eine Implementierung der umbenannten Schnittstellenmethode fehlt, und heute würde man wahrscheinlich eine Methode umbenennen Refactoring-Operation, um die gesamte Code-Basis en masse zu bearbeiten.
Da IDEAs Inspektion nicht so konfiguriert werden kann, dass implementierte Schnittstellenmethoden ignoriert werden, werde ich heute sowohl meine Gewohnheit als auch die Code-Review-Kriterien meines Teams ändern.