使用Java reflections library时,我可以正确找到带有注解的类:

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


但是当我尝试查看每个类上有多少个注释时,我总是看到零:

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


为什么c.getAnnotations()返回长度为0的数组?实际上,在调试器中,name的所有字段(c除外)均为null

最佳答案

确认,除非使用@Retention(RetentionPolicy.RUNTIME)标记注释,否则注释不会保留到运行时。这样就解决了。奇怪的是,尽管该类包含在集合中。我认为这将是全部或全部。

07-27 19:56