您的位置:首页 > 编程语言 > Java开发

Springboot常用注解之@Target,@Documented和@Retention

2019-03-13 21:28 686 查看

1. @Target

   Target设定注解使用范围,通过ElementType来指定注解可使用范围的枚举集合 。

[code]@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {

   ElementType.ANNOTATION_TYPE表示注解在被@interface修饰的类型,否则报错。

   同理,常用的ElementType.METHOD表示注解在方法上,否则报错。

   ElementType用法

取值 注解使用范围
TYPE 类,接口上或者枚举申明
FIELD 字段申明和枚举常量
METHOD 方法
PARAMETER 参数
CONSTRUCTOR 构造方法
LOCAL_VARIABLE 局部变量
ANNOTATION_TYPE 注解类型上(被@interface修饰的类型)
PACKAGE 安装包申明
TYPE_PARAMETER 类型参数申明
TYPE_USE 使用一种类型

 

2.@Documented

   Documented注解表明这个注释是由 javadoc记录的。 如果一个类型声明被注释了文档化,它的注释成为公共API的一部分。

[code]@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {

3.@Retention

   @Retention与RetentionPolicy这个枚举类型的常量一起指定注释要保留多长时间

   RetentionPolicy描述保留注释的各种策略

[code]@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {

   RetentionPolicy用法:

取值 解释
SOURCE 编译器丢弃注释
CLASS 编译器会记录在文件中,默认运行时不需要虚拟机保留
RUNTIME 编译器记录在文件中,由虚拟机运行时保留,便于读取。

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: