44、注解
1、概念
1.1、概念
说明程序的,给计算机看的
1.2、定义
注解也叫元数据,一种代码级别的说明,与类、接口、枚举是同一个层次,可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释
1.3、分类
- 编写文档:通过代码里标识的注解声明文档
- 代码分析:通过代码里标识的注解对代码进行分析
- 编译检查:通过代码里标识的注解让编译器能实现基本的编译检查
2、预定义的注解
2.1、@Override
检测是否继承自父类
2.2、@Deprecated
表示标注的内容以过时
2.3、@SuppressWarnings
压制警告,一般传递参数all
3、自定义注解
格式
元注解
public @interface 注解名称{
属性列表;
}
本质
本质上是一个接口
属性(可以定义的内容)
接口中可以定义成员方法
要求
属性的返回值类型
- 基本数据类型
- String
- 枚举
- 注解
- 以上类型的数组
定义了属性,在使用时要给属性赋值
- 如果定义时使用了default定义了默认值就可以不赋值
- 如果只有一个属性要赋值,且名称为value,则使用时可以省略value,直接写值
- 数组赋值时,值使用{}包裹,如果数组只有一个值,则{}省略
3.2、元注解
用于描述注解的注解
@Target:描述作用位置
ElementType取值
TYPE:可以作用于类
METHOD:可以作用于方法
FIELD:作用于成员变量
@Retention:描述注解被保留的阶段
RetentionPolicy.RUNTIME:保留到运行阶段,自定义一般都是使用此值
@Document:描述注解是否被抽取到api文档中
@Inherited:描述注解是否被子类继承
4、解析注解
1、获取注解定义位置的对象,
2、获取指定的注解
3、调用注解中的抽象方法获取配置的属性值