给定这些类型:
@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);
但是当我查询在前面的 annotationMirror 中注释的注释时,它是 Annotation2
的镜像,我得到一个空列表。
annotationMirror
.getAnnotationType()
.asElement()
.getAnnotationMirrors();
我想这个问题不知何故与这个 one 有关.
最佳答案
问题中发布的代码工作正常。
annotationMirror
.getAnnotationType()
.asElement()
.getAnnotationMirrors();
该问题与用于测试目的的源代码中缺少导入有关。
关于java - 如何使用 AbstractProcessor 访问另一个注解中的注解 - 而不是反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040104/