注解定义示例及说明
2014-11-18 20:47
148 查看
定义方式:
注解@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) @Documented public @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注解的信息,以便在分析程序的时候使用.
相关文章推荐
- SpringMVC实现依赖注入的几个常用注解的用法解释和示例说明
- SpringMVC实现依赖注入的几个常用注解的用法解释和示例说明
- apache日志格式定义及示例说明
- 线程安全的定义以及示例说明
- Spring2.0 AOP @AspectJ注解定义切面学习示例。
- 示例一个PLSQL完成功能来说明PLSQL的作用(定义变量+异常处理+抛异常)
- rest注解说明及使用示例(java)
- Highcharts控件使用说明及注意事项, 错误: 'Highcharts' 未定义 错误: 'jb' 为空或不是对象
- 用示例说明表数据中出现热块&Latch的场景,并给出解决方案?
- 用示例说明索引数据块中出现热块&Latch的场景,并给出解决方案
- Spring3 Cache相关注解说明及实例
- google注解@SerializedName的使用说明
- PHP完全二叉树定义与实现方法示例
- js中一维数组和二位数组中的几个问题示例说明
- MySQL备份命令mysqldump参数说明与示例
- CaysnPrinter开发包接口说明文档及示例程序 - CAYSN IOS SDK_20160906
- Oracle数据库开发(七).OCI开发示例说明
- Android 举例说明自己的定义Camera图片和预览,以及前后摄像头切换
- DbToCodeDemo示例项目源码DALFactory无法反射创建类实例的常见错误说明
- Java fork/join 框架说明示例