Edited at

Javaのアノテーションを学んでみたの巻

More than 5 years have passed since last update.


アノテーション


アノテーションとは

Wikipedia抜粋

Javaのアノテーションは、クラスやメソッド、パッケージに対してメタデータとして注釈を記入する。

らしい。


アノテーションの種類

Javaのアノテーションは大きく分けると3つに分類される


  • マーカーアノテーション

    文字通り目印レベルの役割を果たすアノテーション、Javaでよく使われるアノテーションとして@Override@Deprecatedなどがある

  • 単一値アノテーション

    1つのデータを持つアノテーション

  • フルアノテーション

    少なくとも2以上のデータを持つアノテーション


メタアノテーション

アノテーションを作るに当たってのアノテーションがあって、以下の定義を付加することで独自のアノテーションを定義することができる



  • @Retention

    アノテーションの保持ルールを決める


  • @Target

    アノテーションが利用可能なプログラム要素を定義する


  • @Inherited

    アノテーションを付加した対象が継承後も付加された状態にしたい場合にこれを付加する


独自アノテーション定義


マーカーアノテーション

眠たいときに見てはいけないコードのアノテーション

定義

public @interface Sleepy { }

使用例

public class Work {

@Sleepy
public void meeting() {
System.out.println("...zzz");
}
}


単一値アノテーション

出身県を表すアノテーション

定義

public @interface NativePrefecture {

String value();
}

使用例

@NativePrefecture("大阪府")

public String getMessage(){
return "なんでやねん";
}


フルアノテーション

定義

public @interface NativePrefecture {

String value();
Int jisCode();
}