注解
注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”,可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”
注解类型
常用的两类注解:
- 编译器使用,例如@Override,@SuppressWarning
- 程序运行期能够读取的注解,在加载后一直存在于JVM中。例如,一个配置了@PostConstruct的方法会在调用构造方法后自动被调用(这是Java代码读取该注解实现的功能,JVM并不会识别该注解)
注解的配置参数
配置参数可以包括:
- 所有基本类型;
- String;
- 枚举类型;
- 基本类型、String、Class以及枚举的数组。
配置参数必须是常量,所以,上述限制保证了注解在定义时就已经确定了每个参数的值。
注解的配置参数可以有默认值,缺少某个配置参数时将使用默认值。
把最常用的参数定义为value(),推荐所有参数都尽量设置默认值
定义注解
使用@interface语法定义
public @inerface Report{
int type() default 0;
String level() default "info";
String value() default "";
}