// 注解和元注解从jdk5.0开始
一、定义注解
public @interface AnAnnotate{
}
二、元注解
1,@Retention
指定修饰注解的生命周期状态
①SOURCE
java文件编译时抛弃
②CLASS
java文件编译时保留,class文件运行时抛弃
③RUNTIME
java文件编译时保留,class文件运行时也保留,可以被用作反射
默认状态为CLASS
2,@Target
指定修饰的注解可以修饰什么类型
①TYPE
类文件,接口,枚举类
②FIELD
属性
③METHOD
方法
④PARAMETER
参数
⑤CONSTRUCTOR
构造器
⑥LOCAL_VARIABLE
局部变量
⑦ANNOTATION_TYPE
注解类型
⑧PACKAGE
包
⑨TYPE_PARAMETER
类型变量声明语句中
⑩TYPE_USE
任何类型的任何语句中
⑾MODULE
模块
⑿RECORD_COMPONET
记录元器件
没有指定即默认所有都可以用
3,@Documented
修饰该注解是否要被javadoc提取成文档,Retention
4,@Inherited
修饰的注解如果修饰父类,子类自动拥有该注解
5,@Repeatable
可重复注解
三、自定义注解
声明方式:
public @interface AnAnnotation{
}
注解内部可以声明一个函数方法类似于数据成员,例如
String value();
可以在定义时设置默认值: String value() defult "aString";
类型只能是基本数据类型、String、Class、Enum、Annotation及其数组
若没有声明即起标记作用。
四、jdk内置注解
1,@Override
重写父类方法时使用
2,@Deprecated
表示修饰的方法已过时
3,@SuppressWarnings
抑制编译器警告