ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

標準アノテーション

アノテーションとは注釈の意味で、これはプログラムが参照できる注釈である。Javaのコメントとは異なり、コンパイラが参照して警告等を表示してくれる。また、独自のアノテーションを定義することができる。今回は標準アノテーションについてちょっとだけ触れていきます。

// アノテーションサンプルソース
public abstract class AnnotationChild {
    @Deprecated
    abstract void disp(String msg);
}
public class AnnotationSample extends AnnotationChild{
    public static void main(String[] args) {
        AnnotationChild ac = new AnnotationSample();
        ac.disp(null);
    }
    @Override
    void disp(String msg) {
        System.out.println("AnnotationSample");      
    }
    // @Overrideを宣言するとエラーになる。なぜなら継承元クラスにdaspは宣言されていないから
    void dasp(String msg){System.out.println("AnnotationSample");}
}

AnnotationChild抽象クラスをAnnotationSampleクラスが継承している。その際にメソッドをオーバーライドしているが、@Overrideは、オーバーライドのスペルミス等を防止してくれます。この場合、dispを間違って、daspとして、アノテーション"@Override"をつけると警告されます。
また、非推奨を警告する@DeprecatedなどJDK標準で実装されているものもあれば、JUnitように独自で宣言されているものもあります。