annotation - アノテーションについて

トップ > チップス > annotation - アノテーションについて
2012-02-13, annotation

/tips/java/annotation **アノテーションを付与可能な場所を指定する アノテーション宣言に「@Target」アノテーションを指定します。複数指定する場合は、「@Target({.. , ..})」のように括弧とコンマで区切って記述することができます。 :@Target(ElementType.FIELD) :public static @interface Foo { :}

**実行時にアノテーションを参照する アノテーション宣言に「@Retention」アノテーションを指定します。デフォルトのRetentionPolicyは「CLASS」となっており、”.classファイル内にアノテーション情報は残るが、実行時には読み込まれない”動作をするようです。「RetentionPolicy.RUNTIME」を指定すると実行時にリフレクションを使用してアノテーションを参照することが出来るようになります。 :public class Test { : @Target(ElementType.FIELD) : @Retention(RetentionPolicy.RUNTIME) : public static @interface Foo { : } : : {strong:@Foo} : public int foo = 0; : : public static void main(String[] args) throws SecurityException, NoSuchFieldException { : Field field = Test.class.getField("foo"); : Foo foo = field.getAnnotation(Foo.class); : System.out.println(foo.annotationType().getSimpleName()); // Foo : } :}

この記事は役に立ちましたか?