もしこのブログがお役に立ちましたら、次回のAmazonでのお買い物時に こちらのリンクから 購入していただけますと嬉しく思います。

2011年10月8日

リフレクションとアノテーション

java.lang.reflect.Constructor、Field、Method
の親クラスの
java.lang.reflect.AccessibleObject

getAnnotation(Class annotationType)
とか
isAnnotationPresent(Class annotationType)
などというメソッドがあるわけですが、引数に独自アノテーションのクラスを指定しても期待通りの動作をしない場合があります。
そういう場合は、アノテーション定義の直前に一行加えます。
@Retention(RetentionPolicy.RUNTIME)
public @interface OwnAnnotation {
}
この
@Retention(RetentionPolicy.RUNTIME)
を指定すると、プログラム実行時にも独自アノテーションを参照できるようになるというわけです。