2013-01-13 50 views
9

比方说,我定义了一个名为@MyAnnotation的注释。注释处理器可用于代码生成吗?

有一类X作为声明:

@MyAnnotation 
class X { .... } 

现在在编译的时候我想检查与@MyAnnotation注释的所有类,并做一些代码生成需要被编译为更多的Java源文件在相同的过程中。

这可能使用java注释处理器或其他工具吗?

+0

http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html。看看这里。有可能的。 – vels4j

+1

这就是注释处理的用途。你基本上是问它是否可以做它做的。 – Bohemian

回答

10

你可以看看Java apt (Annotation Processing Tool)这样的事情。

你可以找到Getting Started页面,以及一篇不错的文章(12,3)关于如何使用它来生成代码。

+0

警告:计划在下一个主要的JDK版本中删除apt工具及其关联的API 。这些功能已取代 由javac和标准化注释处理API取代, javax.annotation.processing和javax.lang.model.' –

13

APT工具已被合并到Java 6中的javac中。This是一个更好的注解处理教程。