微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

背后的概念是什么:类型-元素-镜像

如何解决背后的概念是什么:类型-元素-镜像

类型的对象javax.lang.model.element.AnnotationMirror表示代码中的注释。

声明的类型表示注释类。

它的元素是通用类(有关此问题的更多信息,请参见http://java.sun.com/javase/6/docs/api/javax/lang/model/element/TypeElement.html)。元素可能是类的通用版本,例如List,其中声明的类型是参数化的版本,例如List<String>。但是,我不确定注释类是否可以使用泛型,因此在这种情况下,区别可能无关紧要。

例如,假设您具有以下JUnit4方法

@Test(expected = MyException.class)
public void mytest() {  
     // do some tests on some class...
}

AnnotationMirror表示@Test(expected = NullPointerException.class)。声明的类型是org.junit.Test类。该元素与不涉及泛型的元素大致相同。

解决方法

我正在使用Java 6的注释处理,即可以在其中找到的内容javax.annotation.processing(不是Java 5的APT)。

我不知道各个之间的概念性区别是什么ElementType以及Mirror类是。由于我不太了解,很难对注释处理器进行有效编程。有多种方法可以在这些概念之间“转换”,但是我不确定使用它们时我在做什么。

例如,让我有一个实例AnnotationMirror
当我打电话时,getAnnotationType()我得到了一个实例DeclaredTypeTypeMirror无论出于何种原因实现)。
然后,我可以调用asElement()它并获取的实例Element
发生了什么事?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。