如何访问RetentionPolicy.CLASS java注释?

时间:2016-04-02 14:37:38

标签: java annotations

有没有办法配置ClassLoader或JVM来加载带有CLASS保留策略的注释,所以我可以使用反射来访问它们?

这对于编译时后处理很有用,如here所述。 我注释了一些类,以便自动生成antlib.xml文件。我更喜欢我的注释可能有CLASS保留策略,因此它不会创建运行时依赖项。

2 个答案:

答案 0 :(得分:1)

javac可以使用-processor选项处理源和类级别注释。请参见javax.annotation.processing.AbstractProcessor。 (自java 1.6起)。

我在编译.java文件时开始使用它。显然它也可以用来处理带有.class输入文件的CLASS注释。我没有尝试过这个,因为我使用ant编译,而ant似乎没有将.class文件传递给编译器。

当我想要处理项目中的所有注释时,我必须进行完整的编译。

答案 1 :(得分:1)

我想你可能想看看this tutorial

它解释了如何创建自己的注释处理器以及如何使用它来生成代码。它虽然不处理字节码操作。

他还在YouTube上发表了演讲。万一你懒得读......; - )