我们之前在介绍Java注解的时候提到了注解有两种类型,一种是运行时注解,一种是编译时注解,运行时注解是在运行的时候通过反射解析注解,针对对应的注解采取对应的动作,编译时注解是在编译时通过收集附加在代码上的注解来标记一些内容,然后在编译的时候通过识别这些注解来动态生成一些代码。很显然运行时注解会因为java反射而引起较为严重的性能问题,所以尽量避免使用,而编译时注解的魅力在于:编译时按照预先使用注解规定的方案生成代码来避免编写重复代码,提高开发效率,且不影响性能。ß目前使用编译时注解的较为著名的开源框架有Butterknife,Dagger2等。

Annotation Processor Tool是用于编译期扫描和处理注解的工具,目前被集成在javac中。在编译的时候,javac通常会找到你定义的注解处理器,并执行注解处理。

Contents