本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.@Retention定义
这里的 RetentionPolicy 依然是一个枚举类型,它有以下几个枚举值可取:
-
RetentionPolicy.SOURCE:当前注解编译期可见,不会写入 class 文件
-
RetentionPolicy.CLASS:类加载阶段丢弃,会写入 class 文件
-
RetentionPolicy.RUNTIME:永久保存,可以反射获取
@Retention 注解指定了被修饰的注解的生命周期,一种是只能在编译期可见,编译后会被丢弃,一种会被编译器编译进 class 文件中,无论是类或是方法,乃至字段,他们都是有属性表的,而 JAVA 虚拟机也定义了几种注解属性表用于存储注解信息,但是这种可见性不能带到方法区,类加载时会予以丢弃,最后一种则是永久存在的可见性。
2.@Retention创建自定义注解实例
packagecom.one; importjava.lang.annotation.Retention; importjava.lang.annotation.RetentionPolicy; importjava.lang.annotation.Target; importjava.lang.annotation.ElementType; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE})//注解的作用目标为接口、类、枚举、注解***详见下文 public@interfaceRetentionTest{ Stringitem();//定义基本属性若只有一个属性,属性名固定为value(); Stringcolor(); }
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容