Annotation元注解。负责注解其他注解的注解。
jdk 版本 1.8
几种类型:
@Target
@Retention
@Documented
@Inherited
@Repeatable
@Native
@Target
规定Annotation所修饰的对象范围。
TYPE,类、接口(包括注解类型)或enum声明
FIELD,成员变量、对象、属性(包括enum实例)
METHOD,方法声明
PARAMETER,参数声明
CONSTRUCTOR,构造器声明
LOCAL_VARIABLE,局部变量声明
ANNOTATION_TYPE,注解类型声明(用于另一个注解上)
PACKAGE,包声明
TYPE_PARAMETER,类型参数声明(1.8新加入)
TYPE_USE;类型使用声明(1.8新加入)
@Retention
表示需要在什么级别保存该注解信息,即注解的生命周期
SOURCE,只会保留在源码里
CLASS,默认,保留在源码里和class文件里,在执行的时候,不会加载到虚拟机
RUNTIME;运行期也保留注解信息
@Documented
表示注解会被包含在javaapi文档中
@Inherited
允许子类继承父类的注解
@Repeatable
重复注解
@Native
作用在域上,用来表示域中的常量可能来自于本地代码