@Target @Target注释用于定义注释的使用位置,如果没有项目,则表示注释可以在任何地方使用。 @Target的格式如下。
@Target的ElementType的值有以下类型:
TYPE :类、接口或枚举
字段:包含枚举常量的域
方法:方法
参数:参数
构造器:构造方法
LOCAL_VARIABLE :局部变量
ANNOTATION_TYPE :注释类型
包:包
@Retention @Retention注释用于指示限定注释的生存期,即保留到哪个阶段。 形式如下。
RetentionPolicy的值有以下三种。
SOURCE :在源代码级别保留,并在编译后立即丢弃。 CLASS :在编译级别保留,存在于编译后的CLASS文件中,在jvm运行时被废弃。 这是默认值。 RUNTIME :保留运行级。 存在于编译后的class文件中,在jvm运行时被保留,可以通过反射调用。