My Photo

« アノテーション その1 | Main | LV99でもRajaは強かった #FF11 »

February 26, 2012

アノテーション その2

標準メタアノテーション

標準メタアノテーションには以下の4つがある。

  • Target
  • Retension
  • Documented
  • Ingerited

Targetアノテーション
アノテーションがどの種類の要素に適用できるかを示す。
メンバーのvalue() の戻り値は java.lang.annotation.ElementType 型の配列で、java.lang.annotation.ElementType の定数は以下になる。

説明
TYPE クラス・インタフェース・enum・アノテーションの宣言
FIELD フィールドの宣言(enum定数を含む)
METHOD メソッドの宣言
PARAMETER メソッドのパラメータの宣言
CONSTRUCTOR コンストラクタの宣言
LOCAL_VALIABLE ローカル変数の宣言
ANNOTATION_TYPE アノテーション型の宣言
PACKAGE パッケージの宣言

下記のコード例では型にしか使用できないアノテーションを定義している。
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;

@Target(ElementType.TYPE)
public @interface Copyright {
  String value();
}

Retensionアノテーション
記述されたアノテーション情報がどこまで反映されるかを示す。
メンバーのvalue() の戻り値は java.lang.annotation.RetentionPolicy 型で、以下の値である。

説明
SOURCE ソース上だけに記録される。
CLASS クラスファイルにもアノテーションの情報が記録される。ただしそのクラスをJVMにロードしても、JVMにはアノテーションの情報はロードされない。Retensionアノテーションを指定しなかった場合のデフォルト。
RUNTIME クラスファイルに情報が記録され、さらにクラス使用時にはJVMにも情報がロードされる。リフレクションAPIを利用してアノテーション情報を読み取るためにはこの種別を指定しなければならない。

Documentedアノテーション
アノテーション情報がjavadocコマンドなどで作成されたドキュメントに反映されなければならないことを示す。
このアノテーションはマーカーアノテーションである。

Inheritedアノテーション
クラス、または非staticなメソッドに付けられるアノテーションで、アノテーションがサブクラスに自動的に継承されることを示す。 このアノテーションはマーカーアノテーションである。

参考記事:Java Press Vol.37 J2SE 5.0 実践チュートリアル
参考ページ:7. アノテーション (3) | TECHSCORE(テックスコア)

« アノテーション その1 | Main | LV99でもRajaは強かった #FF11 »

「Java」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/54081976

Listed below are links to weblogs that reference アノテーション その2:

« アノテーション その1 | Main | LV99でもRajaは強かった #FF11 »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof