为什么getTypesAnnotatedWith返回没有注释的类

时间:2017-07-25 08:08:16

标签: java reflection annotations google-reflections

我正在尝试在Java中使用类注释,并且我有getTypesAnnotatedWith返回getAnnotation返回null的类的奇怪行为。

是否有某些原因getTypesAnnotatedWith返回没有注释的类?

例如,在我的项目中,以下代码返回(正确)我注释的类之一:

new Reflections("my.nice.package")
    .getTypesAnnotatedWith(MyTag.class)
    .iterator().next();

但是,如果我在其上调用getAnnotation,则结果为null

new Reflections("my.nice.package")
    .getTypesAnnotatedWith(MyTag.class)
    .iterator().next()
    .getAnnotation(MyTag.class));

这是注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyTag {
    public String value();
}

并且,为了完整起见,这是我对类进行注释的方式:

@MyTag("FooBar")
class MyClass {
    // ...
}

0 个答案:

没有答案