注解是 java 5 的一个新特性
注解的英文: Annotation, 可以理解为专门给系统看的一种文件
注解主要有 3 种作用
- 编写文档 –> 制作文档
- 代码分析 –>功能注解,原理是反射
- 编译分析 –>编译检查
jdk内置注解:@Override覆盖, @Override已过时, @SuppressWarnings压制警告
1.生成java文档
通常也就是使用文档注释,配合 javadoc 命令生成 java 文件,如 jdk-api 文档
可以使用 cmd,输入 javadoc Demo.java 生成java文档,
此外,推荐使用 idea ,使用 Tools –> General javadoc 生成整个项目文档
默认生成的是 html,可以直接上传到网站,或制作 chm
2.自定义注解
注解的本质是一个继承 java.lang.annotation.Annotation 的接口
1.注解的定义
元注解
public @interface 注解名称{}
2.注解体
注解体中可以定义属性,可以设置默认值,使用时需要赋值,
- 基本数据类型
- String
- 枚举
- 注解
- 上面几种类型的数组
如果是默认值可以不赋值,value可不写key,数组使用 {}, 其余使用 key=value
3.元注解:用于描述注解的注解(了解以下4个元注解)
- @Target:描述注解能够作用的位置
- ElementType取值
- TYPE:可以作用于类上
- METHOD:可以作用于方法上
- FIELD:可以作用于成员变量上
- ElementType取值
- @Retention:描述注解被保留的阶段
- @Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到
- @Documented:描述注解是否被抽取到api文档中
- @Inherited:描述注解是否被子类继承