注解
-
注解:也叫元数据。一种代码级别的说明。与类、接口、枚举是同一层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。
-
作用分类
- 编写文档:通过代码里标识的元数据来生成文档
- 代码分析:通过代码里标识的元数据对代码进行分析
- 编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查
-
JDK中预定义的一些注解
-
@Override 检测被该注解标注的方法是否事继承自父类(接口)的
-
Deprecated 该注解标注的内容表示已过时
-
SuppressWarnings 压制警告
一般传递参数all
@SuppressWarnings("all")
-
-
自定义注解
-
格式
元注解
public @interface 注解名称{}
-
本质:注解本质上就是一个接口
public interface 注解名称 extends java.lang.annotation.Annotation{}
-
属性:接口中可以定义的成员方法
要求
-
属性的返回值类型
基本数据类型、String、枚举、注解、以上类型的数组
-
在使用时要给属性赋值
定义属性时使用default关键字给属性默认初始化值
如果只有一个属性需要赋值,且属性的名称是value,则value可以省略,直接定义值即可
数组赋值时,使用{}包裹。如果数组只有一个值,{}可以省略
-
-
元注解
-
@Target 描述注解能够作用的位置
ElementType取值
TYPE:可以作用于类
METHOD:可以作用于方法
FIELD:可以作用于成员变量
-
@Retention 描述注解被保留的阶段
@Retention(RetentionPolicy.RUNTIME)
当前被描述的注解会保留到.class文件中,并被jvm读取到 -
@Documented 描述注解是否被抽取到API文档中
-
@Inherited 描述注解是否被子类继承
-
-
-
在程序中使用注解:获取注解中定义的属性值
-
获取注解定义位置的对象
-
获取指定的注解
getAnnotation(class)
-
调用注解中的抽象方法获取配置的属性值
-