Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用AbstractProcessor(而非反射)访问另一个注释中的注释_Java - Fatal编程技术网

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注释。