使用Java reflections library时,我可以正确地找到用注释修饰的类:
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(CommandName.class);
但是当我试着看每个班级有多少注释时,我总是看到零:
for(Class c : annotated)
{
int numAnnotations = c.getAnnotations().length;
}
为什么c.getAnnotations()
返回长度为0的数组?实际上,在调试器中,name
的所有字段({1}}除外)都是c
。
答案 0 :(得分:0)
Ack,除非使用@Retention(RetentionPolicy.RUNTIME)标记注释,否则不会将注释保留到运行时。这解决了它。奇怪的是,这个班级被包括在集合中。我认为这将是全部或全无。