一、注解
1. 概述
- 一种Java语言用来在代码中添加额外信息的形式化方法。
- 使得Java程序可以在编译或者运行之后的某个时刻很方便的去使用这些额外信息(数据)。
2. 注解初体验
-
@Override
- 检查子类确实是覆盖了父类的方法
- 只能在方法上面使用
-
@Deprecated
- 说明已经过时了
- 在方法、成员变量、类上面都可以使用
-
@SuppressWarnings
- 抑制编译器警告
- 使用集合时未指定泛型IDE会发出警告,使用@SuppressWarnings就可以关闭警告
二、自定义注解
1. 格式
public @interface 注解名 {
注解体;
}
2. 注意事项
- @必不可少
-
使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
并由编译程序自动完成其他细节。
- 在定义注解时,不能继承其他的注解或接口。
3. 格式说明
- 方法的名称就是参数的名称
- 返回值类型就是参数的类型
- 返回值类型只能是基本类型、Class、String、enum
- 方法不用写具体实现
- 一个方法表示一个配置
- 如果它这个方法名是value,表示配置项名称是value,那么在给这个单独配置项赋值的时候,不用再去写配置的名字 =,直接写值即可
- 方法之后可以使用default默认值
4. 注解处理器
- 自定义注解生效,必须提供注解处理器——通过反射处理
三、元注解
1. 元数据
- meta data, 描述数据的数据,注解也被称为元数据
2. 元注解
3. @Retention:改变自定义的注解的存活范围
-
RetentionPolicy(枚举类型):
- SOURCE: 在源文件中有效
- CLASS:在class文件中有效
- RUNTIME:在运行时有效
4. @Target:指定该注解能用在什么地方
-
ElementType:
- TYPE: 在类上使用
- FIELD:在成员变量上使用
- METHOD: 在方法上使用
- CONSTRUCTOR:在构造方法上使用
原文
https://segmentfault.com/a/1190000019990568