結城浩のはてな日記匿名クラス(anonymous class)のメソッドを作るときに@Overrideを使おうとすると、元がinterfaceだとオーバーライドできないと言われる(メソッドはそのスーパークラスのメソッドをオーバーライドしません)。
それ以前に@Overrideて何?。 アノテーションって全然勉強してなかったなと思って調べてみました。
dW : Java technology : Tigerでのアノテーション 第1回: Javaコードにメタデータを追加するメタデータの重要性
一般的に言ってメタデータの利点は、ドキュメンテーション、コンパイラー・チェック、コード解析という、3つの視点から見ることができます。
(中略)
Overrideアノテーション
Tigerに組み込まれている最初のアノテーション・タイプはOverrideです。Overrideは(クラスやパッケージ宣言、あるいは他の構造体などではなく)メソッドに対してのみ使用し、このアノテーションで注釈を付けられたメソッドが、スーパークラスにあるメソッドをオーバーライドすることを表します。
なるほど!
静的型付け言語の利点を更に強化するって感じで正しい気がする。 しかし、public static void mainの長さがトラウマな人(含むおれ)にとってはまさに悪夢…。