結城浩のはてな日記

匿名クラス(anonymous class)のメソッドを作るときに@Overrideを使おうとすると、元がinterfaceだとオーバーライドできないと言われる(メソッドはそのスーパークラスのメソッドをオーバーライドしません)。

それ以前に@Overrideて何?。 アノテーションって全然勉強してなかったなと思って調べてみました。

dW : Java technology : Tigerでのアノテーション 第1回: Javaコードにメタデータを追加する

メタデータの重要性

一般的に言ってメタデータの利点は、ドキュメンテーション、コンパイラー・チェック、コード解析という、3つの視点から見ることができます。

(中略)

Overrideアノテーション

Tigerに組み込まれている最初のアノテーション・タイプはOverrideです。Overrideは(クラスやパッケージ宣言、あるいは他の構造体などではなく)メソッドに対してのみ使用し、このアノテーションで注釈を付けられたメソッドが、スーパークラスにあるメソッドをオーバーライドすることを表します。

なるほど!

静的型付け言語の利点を更に強化するって感じで正しい気がする。 しかし、public static void mainの長さがトラウマな人(含むおれ)にとってはまさに悪夢…。

Comments


Option