软件下载 > 开发工具 > Java软件 > JAVA API使用技巧 > javaAPI元注解之Retention

javaAPI元注解之Retention

软件分类:Java软件大小:297.01 MB时间:2022-03-01
软件介绍:运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件和所有已经装载的动态库共同组成了在Java虚拟机上运行的整个程序。zol提供JAVA API下载。

首先,此注解为java API四个元注解中的一个,可修饰注解,它在java.lang.annotation包下。

1、 打开Retention的声明,查看其中定义的内容。

2、 Documented:在生成API帮助文档时展示注解。

3、 (2)Retention:其生命周期为RUNTIME类型。

4、 (3)Target:该注解为元注解,仅可用于修饰注解。

5、 (4)定义一个名为value的方法,其返回值类型为RetentionPolicy。当使用Retention来修饰某个注解时,会给Retention赋予一个RetentionPolicy值,通过这个value方法就能获取到该值。要是不明白的话,可以查看:两个小程序重新认识java注解(第五步:其次获取MyAnnotationForMethod头上的信息)。

6、 两个小程序,让你重新认识Java注解。

javaAPI元注解之Retention

7、 在使用Retention注解时,需传入RetentionPolicy这个枚举类型的参数,而RetentionPolicy包含三个对象。

8、 注解会被编译器舍弃,像Override这种。它仅在编译时用于检查父类是否存在与子类相同的方法,之后Override就会被编译器抛弃,不会被编译进Class文件。

9、 (2)CLASS:这是默认策略。若一个注解未被Retention修饰,就采用此策略。对应的CLASS会被编译器编译,并记录于Class文件。不过,jvm不会保留它,会漠视它(猜想:类加载器应该不会加载Retention为CLASS的注解)。

10、 (3)RUNTIME:注解会被编译器写入Class文件,运行时能被jvm保留,所以可被反射读取。(reflectively为副词,意为反射地,为此专门查询了维基百科)

javaAPI元注解之RetentionjavaAPI元注解之Retention

11、 先创建一个Retention为SOURCE的注解类,然后编写测试类与类F。

javaAPI元注解之RetentionjavaAPI元注解之Retention

12、 再瞧一瞧Override和Test注解,Override的Retention是SOURCE,而Test的Retention为RUNTIME。

javaAPI元注解之RetentionjavaAPI元注解之Retention

13、 运行测试类后查看输出,会发现只有1个注解即Test。这是由于存在两个source,而只有Test是runtime类型,所以jvm仅获取到Test的相关信息。

javaAPI元注解之Retention

14、 将注解的Retention改为CLASS后,结果仍是一样。尽管注解已编译到class文件,可jvm并不处理它,这意味着类装载器不会装载该注解,于是在运行时,我们依然无法找到这个注解。

javaAPI元注解之RetentionjavaAPI元注解之Retention

15、 将注解的Retention修改为RUNTIME后,会发现存在两个注解,即Test注解与自定义的MyRetentionAnnotation注解,这足以证实2中的认知。

javaAPI元注解之RetentionjavaAPI元注解之Retention

文章标题:javaAPI元注解之Retention

文章链接://www.hpwebtech.com/jiqiao/330727.html

为给用户提供更多有价值信息,ZOL下载站整理发布,如果有侵权请联系删除,转载请保留出处。

JAVA API软件简介

运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地... 详细介绍»