如何使用AbstractProcessor - 不反射访问另一个中的注释

时间:2016-06-26 15:32:27

标签: java

鉴于以下类型:

@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Annotation1 {

}

@Retention(RUNTIME)
@Target(TYPE)
@Annotation1
public @interface Annotation2 {

}

@Annotation2
public class Mock {

}

我可以使用AbstractProcessorAnnotation2课程访问Mock,如下所示:

Element element = //obtained from RoundEnvironment instance.
AnnotationMirror annotationMirror = element.getAnnotationMirrors().get(0);

但是当我查询在pevious annotationMirror中注释的注释时,它是Annotation2的镜像,我得到一个空列表。

annotationMirror
    .getAnnotationType()
    .asElement()
    .getAnnotationMirrors();

我认为这个问题与此one有关。

1 个答案:

答案 0 :(得分:1)

问题中发布的代码运行正常。

annotationMirror
    .getAnnotationType()
    .asElement()
    .getAnnotationMirrors();

问题与用于测试目的的源代码中缺少导入有关。