使用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)标记注释,否则注释不会保留到运行时。这样就解决了。奇怪的是,尽管该类包含在集合中。我认为这将是全部或全部。