enumの要素に付与されたアノテーションの取得
enumの要素に付与されたアノテーションをプログラムから取得する方法。
例えば次のようなenumがあるとして、
public enum Framework { @Skirnir YMIR, @Skirnir T2, CUBBY; }
要素「YMIR」に付与されたアノテーションを取得する場合、つい
Skirnir annotation = Framework.class.getAnnotation(Skirnir.class);
とやってしまいがちだが、これだとenumのクラスに付与されたアノテーションが取れてしまう。
enumの要素は構造的にはクラスのフィールドなので、
Skirnir annotation = Framework.class.getField(Framework.YMIR.name()) .getAnnotation(Skirnir.class);
とするのが正解。