首页 > 代码库 > Java注解处理器

Java注解处理器

这几天看公司一个中间件对异步的支持的新特性中,它使用注解处理器来自动生成异步接口。就看了下如何使用注解及编译期注解处理器,一下是些学习笔记吧!

此处说的Java注解及注解处理器,不是运行期注解及使用Class对象和反射来处理的处理器!而是编译期处理的源文件注解(RetentionPolicy.SOURCE);其注解处理器(Annotation Processor)是javac的一个工具,它用来在编译时扫描和处理注解(Annotation)。你可以对自定义注解,并注册相应的注解处理器。

用途

编译期注解处理器以Java源文件为输入,生成文件(一般是Java源文件,是生成不是修改)作为输出;这些生成的Java文件,会同其他普通的手动编写的Java源代码一样被javac编译。所以一般回用编译期注解处理来自动生成比较麻烦的代码或通过自动生成代码达到兼容新特性的需求

Java源文件

既然编译期注解处理器的输入为Java源文件。那我们就看看他是怎么处理的源文件吧

编译期注解处理器把Java源文件看成一个结构化的文本,而不是一个可编译的Java源文件;源代码的各个部分都是一个特定类型的Element,换句话说:Element代表程序的元素,例如包、类或者方法。每个Element代表一个静态的、语言级别的构件。Java中定义的Element有一下几种:

技术分享

(未完)

参考

https://race604.com/annotation-processing/

http://www.cnblogs.com/avenwu/p/4173899.html

http://blog.csdn.net/haveferrair/article/details/52182927

http://blog.csdn.net/qinxiandiqi/article/details/49182735

http://blog.csdn.net/ucxiii/article/details/52025005

Java注解处理器