Java 如何使用AbstractProcessor(而非反射)访问另一个注释中的注释
鉴于这些类型:Java 如何使用AbstractProcessor(而非反射)访问另一个注释中的注释,java,Java,鉴于这些类型: @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface Annotation1 { } @Retention(RUNTIME) @Target(TYPE) @Annotation1 public @interface Annotation2 { } @Annotation2 public class Mock { } 我可以使用一个类从Mock访问注释2,如下所示: Element element
@Retention(RUNTIME)
@Target(ANNOTATION_TYPE)
public @interface Annotation1 {
}
@Retention(RUNTIME)
@Target(TYPE)
@Annotation1
public @interface Annotation2 {
}
@Annotation2
public class Mock {
}
我可以使用一个类从Mock
访问注释2
,如下所示:
Element element = //obtained from RoundEnvironment instance.
AnnotationMirror annotationMirror = element.getAnnotationMirrors().get(0);
但是当我查询前一个annotationMirror中注释的注释时,我得到了一个空列表,它是Annotation2
的镜像
annotationMirror
.getAnnotationType()
.asElement()
.getAnnotationMirrors();
我认为这个问题与此有关 问题中的代码运行良好
annotationMirror
.getAnnotationType()
.asElement()
.getAnnotationMirrors();
该问题与用于测试目的的源代码中缺少导入有关 我认为发生这种情况是因为您已将
@Annotation2
应用于一个类,而该类不是它的有效目标-您已指定该注释仅应用于方法和参数。很抱歉,这是一个输入错误。我已更新了问题以修复它。为什么您要尝试从注释镜像
获取注释?你想完成什么?因为我需要为每个处理过的类创建一个新的java类,并用注释1注释。