考虑到这些类型:
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Annotation1 {
}
@Retention(RUNTIME)
@Target(TYPE)
@Annotation1
public @interface Annotation2 {
}
@Annotation2
public class Mock {
}
我能够使用AbstractProcessor从Mock
类中访问Annotation2
,方法如下:
Element element = //obtained from RoundEnvironment instance.
AnnotationMirror annotationMirror = element.getAnnotationMirrors().get(0);
但是,当我查询在之前的注解镜像中标注的注解 - 这是Annotation2
的镜像时,我得到了一个空列表。
annotationMirror
.getAnnotationType()
.asElement()
.getAnnotationMirrors();
我认为这个问题与这个问题有关。
@Annotation2
应用于一个类,而这不是它的有效目标 - 你已经指定该注解仅适用于方法和参数。 - yole