注解定义示例及说明
来源:互联网 发布:海购网站 知乎 编辑:程序博客网 时间:2024/05/18 14:24
定义方式:
注解@Target也是用来修饰注解的元注解,它有一个属性ElementType也是枚举类型,
值为:ANNOTATION_TYPE CONSTRUCTOR FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
如@Target(ElementType.METHOD) 修饰的注解表示该注解只能用来修饰在方法上。
注解@Retention可以用来修饰注解,是注解的注解,称为元注解。
Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,
这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE
用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候;
用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中;
用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时,
所以他们可以用反射的方式读取。RetentionPolicy.RUNTIME 可以让你从JVM中读取Annotation注解的信息,以便在分析程序的时候使用.
@Target(value = ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Writer {String value() default "Writer";}
注解@Target也是用来修饰注解的元注解,它有一个属性ElementType也是枚举类型,
值为:ANNOTATION_TYPE CONSTRUCTOR FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
如@Target(ElementType.METHOD) 修饰的注解表示该注解只能用来修饰在方法上。
注解@Retention可以用来修饰注解,是注解的注解,称为元注解。
Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,
这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE
用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候;
用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中;
用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时,
所以他们可以用反射的方式读取。RetentionPolicy.RUNTIME 可以让你从JVM中读取Annotation注解的信息,以便在分析程序的时候使用.
0 0
- 注解定义示例及说明
- apache日志格式定义及示例说明
- rest注解说明及使用示例(java)
- 无线trace说明及示例
- MPI函数说明及示例
- Jsoup 简介 及示例说明
- 注解类型的定义及使用
- Spring MVC工作原理 及注解说明
- Spring MVC工作原理 及注解说明
- shiro的注解及标签说明
- Spring MVC工作原理 及注解说明
- JAVA注解说明及应用实例
- JAX-WS注解说明及案例
- Spring2.0 AOP @AspectJ注解定义切面学习示例。
- Linux下内存泄露定义及示例
- Oracle_PLSQL_常用功能说明及示例
- shapefile格式说明及读写代码示例
- shapefile格式说明及读写代码示例
- JavaScript语言基础10
- 字符串匹配算法扩展
- 【C语言疯狂讲义】(九)C语言指针(一)
- Linux Socket相关预先设置
- SVM(二)拉格朗日对偶问题
- 注解定义示例及说明
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- IMX6Q Uboot 从零开始编译
- 第三部分、海量数据处理之 Bti-map 详解
- php抓取网页失败后的发散思路
- 黑马程序员————java基础--------二维数组及面向对象(一)
- SVM(三),支持向量机,线性不可分和核函数
- Android屏幕分辨问题
- 【EJB2+JBOSS】Stateless Bean和Stateful Bean