注解-Java使用篇
背景
在之前的Rxjava+ReTrofit+okHttp深入浅出-终极封装和RxBus完全一样的 EventBus中我们频繁的使用了注解,通过注解大大的提升了我们开发的效率,但是很多同学反馈说对里面的使用不是很了解,所以决定对java和android注解的使用做详细的介绍。
版本
在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行
功能
- 生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
- 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都 使用了这种配置来减少配置文件的数量
- 在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查 出
基本使用
1.自定义一个注解的使用方法
如@Ety,其中@的意思是告诉编译器这是一个注解。而Ety则是注解的名字。定义一个注解我们需要@interface,使用通常在文件中,代码如下:
public @interface Ety {
}
2.定义完注解对象以后,通常我们还需要给这个对象传递一些属性和方法,代码如下:
public @interface Ety {
String value();
String name();
}
3.初始对象方法:
3.1多参数方法
@Ety(value = "v", name = "n")
上述注解的元素名称为value ,设置的值为v,元素名称为name ,设置的值为n;
3.2单一参数方法:假设下载Ety 只有一个String value()
方法
@Ety(value = "v")
除了上面的写法以外还可以写成:当且仅当元素名为value,我们也可以简写,即不需要填写元素名
@Ety("v")
4.注解使用
4.1初始完对象以后,后续肯定是如何使用呢?
如果之前有阅读RxBus完全一样的 EventBus原理,肯定知道这里其实是通过java的反射机制来获取注解对象的内容
@Ety(value =