本文共 1096 字,大约阅读时间需要 3 分钟。
在声明注解时,可以使用该注解进行修饰,表示在使用诸如 javadoc 的工具生成文档时,将该注解作为公共接口的内容体现在文档中。
在声明注解时,可以使用该注解进行修饰,并指定相应的值,表示该声明的注解可以应用的范围。
其相关的值,可以参考 ElementType
枚举类型。
枚举值 | 说明 |
---|---|
TYPE | 表示可以修饰诸如类、接口、注解、枚举等类型 |
FIELD | 表示可以用来修饰类变量、枚举值等域 |
METHOD | 表示可以修饰方法 |
PARAMETER | 表示可以修饰常规参数 |
CONSTRUCTOR | 表示可以修饰构造器 |
LOCAL_VARIABLE | 表示可以修饰本地变量 |
ANNOTATION_TYPE | 表示可以修饰注解 |
PACKAGE | 表示可以修饰包 |
TYPE_PARAMETER | 表示可以修饰类型声明中的参数 |
TYPE_USE | 表示可以修饰类型,也可以类型参数,包含 Type 和 TYPE_PARAMETER 是一种快捷方式 |
在使用 @Target
时,可以同时指定多个值,如 @Target({ElementType.METHOD, ElementType.TYPE})
,表示声明的注解可以用来修饰方法,也可以修饰类、接口、枚举等类型。
在声明注解时,用来表示声明的注解的保留策略,有分为三种策略,参见 RetentionPolicy
枚举。
枚举值 | 说明 |
---|---|
SOURCE | 仅仅保留在源代码中,会被编译器忽略 |
CLASS | 会被编译到类文件中,但是不会被保留到运行时 |
RUNTIME | 会被 VM 保留在运行时中,可以通过反射机制获取 |
在声明注解时使用该注解进行修饰,表示被修饰的注解被用来修饰类后,该注解会自动被子类继承。需要注意的是,该特性只对类有效,即使是类实现了被 @Inherited
修饰的注解修饰的接口,该类的子类也并不会自动继承该注解。
被该注解修饰的域,表示该域所声明的常量值可能来自硬编码,该注解可以作为生成源码头文件的线索。
使用该注解修饰声明的注解,表示声明的注解可以作为集合数组值指向指定的注解。如 @Resource
和 @Resources
注解。
在使用时,需要注意使用 @Repeatable
修饰的 @Resource
注解指定的的应用范围不能小于 @Resources
注解指定的范围,而保留策略则相反,存在的时间,前者不能超过后者。即,作为一个集合的元素,应用范围应包含整个集合的应用范围,而存在时间不能超过整个集合的存在时间。
转载地址:http://ktdws.baihongyu.com/