3

Javaリフレクションライブラリを使用すると、アノテーションで装飾されたクラスを正しく見つけることができます。

Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(CommandName.class);

しかし、各クラスにいくつの注釈があるかを確認しようとすると、常にゼロが表示されます。

for(Class c : annotated)
{
     int numAnnotations = c.getAnnotations().length;
}

c.getAnnotations()長さ0の配列を返すのはなぜですか?実際、デバッガーでは、のすべてのフィールド(を除くname)はcですnull

4

1 に答える 1

0

@Retention(RetentionPolicy.RUNTIME) でマークしない限り、注釈は実行時に保持されないことがわかりました。これで修正されました。クラスがセットに含まれているのは奇妙です。私はそれがすべてか無かだと思います。

于 2012-11-13T21:54:45.053 に答える