アノテーションオブジェクトの生成

アノテーションAnnoのオブジェクトは@Annoが付与されているクラスやメソッドに対応するClassやMethodオブジェクトについてAnnotatedElement#getAnnotation(Anno.class)を呼び出すことで取得できるが、新たに生成したいことがある(かもしれない)。

そこでいろいろ試してみた。

まずこれ。

    Anno anno = Anno.class.newInstance();

これはあえなくInstantiationException。

んで次はこれ。

    Constructor<?>[] constructors = Anno.class.getConstructors();
    System.out.println(constructors.length);

この結果は「0」。そもそもコンストラクタがないのね…。

というわけで、姑息な手段を使うはめに。

@Anno
public class AnnotationProvider {
}

...

public class AnnocationProviderTest {
    public static void main(String[] args) {
        Anno anno = AnnotationProvider.class.getAnnotation(Anno.class);
    }
}

全く解決になってない…。