Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。
作用分类:
编写文档:通过代码标识的元数据生成文档
javadoc
编写文档:通过代码标识的元数据对代码分析
编译检查:通过代码标识的元数据让编译器实现基本的编译检查
jdk中预定义的注解
@override:检测被该注解标注的方法是否继承自父类
@deprecated:该注解的标注的内容,已过时
@suppresswarnings:压制警告
自定义注解
格式
元注解
public@interface注解名称【】
本质:注解本质是一个接口,该接口默认继承annotation接口
属性:接口中的抽象方法
1.返回值类型
基本数据类型
string
枚举
数组
2.定义属性,在使用时需要赋值
default关键字给属性默认初始化值
有一个属性value,可以省略value
注解的注解就是元注解
@target:描述注解作用的位置
target(value={elementtype.type})只作用于类上
target(value={elementtype.method})只作用于方法上
target(value={elementtype.field})只作用于成员变量上
@retention:描述注解被保留的一个阶段
retention(retentionpolicy.runtime):当前被描述的注解。会保留到class字节码文件中并被jvm读取到
@documented:描述注解是否被抽取到api文档中
@inherited:描述注解是否被子类继承
在程序中使用注解
1.获取注解定义位置的对象
2.获取指定的注解
3.调用注解中的抽象方法