アノテーションとは注釈の意味で、これはプログラムが参照できる注釈である。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ように独自で宣言されているものもあります。