Java注解系列之2nd

本文详细探讨了Java注解的分类,包括元注解和自定义注解,以及按照来源和作用域的划分。重点介绍了注解解释器(Annotation Processor)中的AbstractProcessor,以及如何借助AutoService简化注解处理。通过分析AbstractProcessor的工作原理,揭示了反射在处理注解中的关键作用。同时,文章对比了RetentionPolicy的SOURCE、CLASS和RUNTIME的区别,强调在实际开发中,RUNTIME的普遍适用性。最后,文章提到了一些高级知识点,如 EventBus 和 ButterKnife 在注解使用中的角色。
摘要由CSDN通过智能技术生成

吾不知其名,强名曰道。
夫道者:有清有浊,有动有静;天清地浊,天动地静;降本流末,而生万物。
清者,浊之源,动者,静之基;人能常清净,天地悉皆归。

我们仅仅了解注解(Annotation),那如何让注解起作用呢,这就需要注解解释器(Annotation Processor) 出场啦。

如果有这方面的经验,那肯定知道大名鼎鼎的AbstractProcessor。真正让注解起作用的就是它背后的功劳。

大家可以通过项目AnnotationsExplorer去真正实践注解,关于此项目运行的任何问题,您都可以先到 Issues 里尝试获取有效信息.


1. 注解(Annotation)

Java 在 JDK 1.5 之后引入了 注解,我们先来简要谈一下注解的种类。

1.1 注解的分类

不同的划分方式将会导致不同的种类(如果面试过程中遇到此类问题,一定要展开去具体论述) PS:此问题仁者见仁,言之有理即可。

  1. 按照来源划分:

    a. 元注解( Target, Retention, Documented, Inherited, Repeatable(1.8))

    b. 自定义注解(JDK内置的注解,第三方库的注解,我们自己定义的注解)

  2. 按照注解的时机(作用域)划分:

    i. Source Code 注解

    ii. 编译时注解

    iii.运行时注解

具体的使用方法,网上信息很全,这里不展开论述。


2. 注解解释器(Annotation Processor)

顾名思义,注解解释器就是用来处理注解的 (废话一句)

如果对这方面有了解的话,那鼎鼎大名的AbstractProcessor一定是见识过的。我们一般在处理注解时,都需要来继承它。

但是到了这里,我们有了注解解释器,怎么让他运行呢?这里我们需要借助于Google出的 AutoService,真心帮助我们省掉很多繁琐的步骤。使用方法更是超级简单:
只需要在我们自定义的注解上面再加上一个注解即可。

@AutoService(Processor.class)

那它到底是怎么帮我们的呢?请参考这里:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值