吾不知其名,强名曰道。
夫道者:有清有浊,有动有静;天清地浊,天动地静;降本流末,而生万物。
清者,浊之源,动者,静之基;人能常清净,天地悉皆归。
我们仅仅了解注解(Annotation),那如何让注解起作用呢,这就需要注解解释器(Annotation Processor) 出场啦。
如果有这方面的经验,那肯定知道大名鼎鼎的AbstractProcessor。真正让注解起作用的就是它背后的功劳。
大家可以通过项目AnnotationsExplorer去真正实践注解,关于此项目运行的任何问题,您都可以先到 Issues 里尝试获取有效信息.
1. 注解(Annotation)
Java 在 JDK 1.5 之后引入了 注解,我们先来简要谈一下注解的种类。
1.1 注解的分类
不同的划分方式将会导致不同的种类(如果面试过程中遇到此类问题,一定要展开去具体论述) PS:此问题仁者见仁,言之有理即可。
-
按照来源划分:
a. 元注解( Target, Retention, Documented, Inherited, Repeatable(1.8))
b. 自定义注解(JDK内置的注解,第三方库的注解,我们自己定义的注解)
-
按照注解的时机(作用域)划分:
i. Source Code 注解
ii. 编译时注解
iii.运行时注解
具体的使用方法,网上信息很全,这里不展开论述。
2. 注解解释器(Annotation Processor)
顾名思义,注解解释器就是用来处理注解的 (废话一句)
如果对这方面有了解的话,那鼎鼎大名的AbstractProcessor一定是见识过的。我们一般在处理注解时,都需要来继承它。
但是到了这里,我们有了注解解释器,怎么让他运行呢?这里我们需要借助于Google出的 AutoService,真心帮助我们省掉很多繁琐的步骤。使用方法更是超级简单:
只需要在我们自定义的注解上面再加上一个注解即可。
@AutoService(Processor.class)
那它到底是怎么帮我们的呢?请参考这里: