java - 如何使用 AbstractProcessor 访问另一个注解中的注解 - 而不是反射

标签 java

给定这些类型:

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

}

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

}

@Annotation2
public class Mock {

}

我可以使用 AbstractProcessorMock 类访问 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/

相关文章:

java - 从 PL/SQL block 返回值

java - 调用 SOAP 服务时出现 INVALID_WSDL 错误

java - 用java poi解析公式不起作用

java - 为什么编译接口(interface)后, "default"方法修饰符从 "javap -v"消失了?

java - 数基转换

java - 为Android应用程序设置声音

java - 如何使用 JSoup 从 Sports Reference 的数据表中检索数据?

java - 线程和上下文之间的问题 - Android

java - 如何使用mallet进行主题建模API

java - GemFire 缓存客户端可以在服务器上创建区域吗?