reflections.getTypesAnnotatedWith(...)查找class,但getAnnotations()。length为0

时间:2012-11-13 20:43:21

标签: java reflection google-reflections

使用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

1 个答案:

答案 0 :(得分:0)

Ack,除非使用@Retention(RetentionPolicy.RUNTIME)标记注释,否则不会将注释保留到运行时。这解决了它。奇怪的是,这个班级被包括在集合中。我认为这将是全部或全无。