【笔记】Java的注解
前言
Java的注解学习笔记
JDK内置注解
标注方法表示这是重写方法
1 |
|
标注方法表示方法已过时
1 |
|
标注类或方法表示屏蔽警告
屏蔽指定警告
1 |
|
屏蔽全部警告
1 |
|
标注接口表示这是函数式接口
1 |
|
定义注解
1 | 注解名 {} |
注解上定义元注解
元注解,元注解是标注注解的注解
@Retention:定义注解的生命周期
RetentionPolicy.SOURCE:定义这是一个源码注解RetentionPolicy.CLASS:定义这是一个编译注解RetentionPolicy.RUNTIME:定义这是一个运行时注解
@Documented:动态生成文档,通过javadoc <name>.java根据注解生成文档@Target:定义注解的使用范围
ElementType.TYPE:作用于类上ElementType.FIELD:作用于字段上ElementType.METHOD:作用于方法上ElementType.PARAMETER:作用于形参上ElementType.CONSTRUCTOR:作用于构造器上ElementType.LOCAL_VARIABLE:作用于局部变量上ElementType.ANNOTATION_TYPE:作用于注解上ElementType.PACKAGE:作用于包上ElementType.TYPE_PARAMETER:作用于类型参数上ElementType.TYPE_USE:作用于类型类型使用上
@Inherited:在标注的类的子类中可以继承注解@Repeatable:定义注解可重复使用
1 |
|
注解中定义属性
1 | 注解名 { |
默认值
1 | 注解名 { |
数组默认值
1 | 注解名 { |
注解作为其他注解的属性类型
1 | 注解名 { |
默认属性
1 | 注解名 {} |
- 如果注解中没有定义任何属性,那么仍然存在一个默认属性
value(),它的默认值为空
1 | 注解名 { |
使用注解
- 如果使用注解时,注解有定义属性,则使用时必须指定属性值
- 属性值必须为字面量或常量
1 | 注解名 { |
- 通过
{}传递数组类型的属性值
1 | 注解名 { |
- 数组中只有一个属性值,可以省略
{}
1 | 注解名 { |
- 属性只有一个,且属性名为
value()时,可以省略属性名
1 | 注解名 { |
- 属性有默认值时,可以通过省略属性传值,使用默认值
1 | 注解名 { |
- 如果所有属性都使用默认值时,可以省略
()
1 | 注解名 { |
注解当作参数类型
1 | void method(注解名 注解变量名) {} |
- 获取注解属性值
1 | 属性类型 属性变量名 = 注解变量名.属性名(); |