博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
元注解
阅读量:4297 次
发布时间:2019-05-27

本文共 1096 字,大约阅读时间需要 3 分钟。

元注解

@Documented

在声明注解时,可以使用该注解进行修饰,表示在使用诸如 javadoc 的工具生成文档时,将该注解作为公共接口的内容体现在文档中。

@Target

在声明注解时,可以使用该注解进行修饰,并指定相应的值,表示该声明的注解可以应用的范围。

其相关的值,可以参考 ElementType 枚举类型。

枚举值 说明
TYPE 表示可以修饰诸如类、接口、注解、枚举等类型
FIELD 表示可以用来修饰类变量、枚举值等域
METHOD 表示可以修饰方法
PARAMETER 表示可以修饰常规参数
CONSTRUCTOR 表示可以修饰构造器
LOCAL_VARIABLE 表示可以修饰本地变量
ANNOTATION_TYPE 表示可以修饰注解
PACKAGE 表示可以修饰包
TYPE_PARAMETER 表示可以修饰类型声明中的参数
TYPE_USE 表示可以修饰类型,也可以类型参数,包含 TypeTYPE_PARAMETER 是一种快捷方式

在使用 @Target 时,可以同时指定多个值,如 @Target({ElementType.METHOD, ElementType.TYPE}),表示声明的注解可以用来修饰方法,也可以修饰类、接口、枚举等类型。

@Retention

在声明注解时,用来表示声明的注解的保留策略,有分为三种策略,参见 RetentionPolicy 枚举。

枚举值 说明
SOURCE 仅仅保留在源代码中,会被编译器忽略
CLASS 会被编译到类文件中,但是不会被保留到运行时
RUNTIME 会被 VM 保留在运行时中,可以通过反射机制获取

@Inherited

在声明注解时使用该注解进行修饰,表示被修饰的注解被用来修饰类后,该注解会自动被子类继承。需要注意的是,该特性只对类有效,即使是类实现了被 @Inherited 修饰的注解修饰的接口,该类的子类也并不会自动继承该注解。

@Native

被该注解修饰的域,表示该域所声明的常量值可能来自硬编码,该注解可以作为生成源码头文件的线索。

@Repeatable

使用该注解修饰声明的注解,表示声明的注解可以作为集合数组值指向指定的注解。如 @Resource@Resources 注解。

在使用时,需要注意使用 @Repeatable 修饰的 @Resource 注解指定的的应用范围不能小于 @Resources 注解指定的范围,而保留策略则相反,存在的时间,前者不能超过后者。即,作为一个集合的元素,应用范围应包含整个集合的应用范围,而存在时间不能超过整个集合的存在时间。

转载地址:http://ktdws.baihongyu.com/

你可能感兴趣的文章
meshlab编译问题小结
查看>>
CMake Error:Failed to find "glu32" in "" with CMAKE_CXX_LIBRARY_ARCHITECTURE "".
查看>>
异或的妙用
查看>>
libsvm3.2.1 - SVM多分类简单实现
查看>>
函数返回数组指针
查看>>
c++ time.h clock()程序计时
查看>>
C++ 二维数组sort排序
查看>>
函数中定义类
查看>>
回归分析
查看>>
Matlab实现遗传算法
查看>>
opencv配置
查看>>
rt-thread的内核对象管理深入解析
查看>>
LiteOS los_config.h说明
查看>>
从零开始学习FFT(快速傅里叶变换)
查看>>
Makefile教程
查看>>
arm-none-eabi交叉编译工具常用的一些指令
查看>>
Ubuntu 常用解压与压缩命令
查看>>
C语言结构体指针变量作函数参数
查看>>
C语言动态存储分配
查看>>
文科生清晰理解傅里叶变换
查看>>