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

javaAPI元注解之Inherited

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

这个注解是Java API中的四个元注解之一,用于修饰其他注解,定义在java.lang.annotation包中。

1、 先阅读注解说明:

2、 已记录:生成API帮助文档时展示注解内容。

3、 保留:JVM保留。

4、 (3)Target:该注解为元注解,用于指定其他注解的使用范围。

javaAPI元注解之Inherited

5、 再看一例:创建三个注解,其中两个通过Inherited声明,另一个未声明。此外,这三个注解都需要设置Retention为RUNTIME,否则 JVM 无法识别,请注意Retention属性的使用。

javaAPI元注解之InheritedjavaAPI元注解之InheritedjavaAPI元注解之Inherited

6、 创建测试类与四个具有继承关系的类,通过 getAnnotations 方法查找类注解,输出找到的注解数量。

javaAPI元注解之Inherited

7、 再看Deprecated注解的声明,并未标明Inherited属性。

javaAPI元注解之Inherited

8、 观察输出结果,发现Son1类仅有一个注解MyInheritedAnnotation2。这是为什么?

9、 从继承关系上看,Son1继承自Father1,Father1继承自GrandFather,GrandFather继承自Monkey,而Monkey最终继承自Object。

10、 Object类不存在任何注解。

11、 Monkey类有Deprecated注解,但因Deprecated未声明Inherited属性,导致注解无法继承,故GrandFather类没有继承到该注解。

12、 GrandFather虽有注解MyInheritedAnnotation3,但该注解未声明为可继承(Inherited),因此不具备遗传特性。同时,GrandFather也未从Monkey处继承任何注解,导致其本身并无有效注解可供传递,所以无法将注解遗传给Father1。

13、 Father1有一个注解MyInheritedAnnotation2,该注解声明了Inherited属性,因此会传递给Son1。不过,Father1并未从GrandFather处继承任何注解。

14、 Son1虽然自身没有定义注解,但由于继承了父类Father1,从而获得了继承型注解MyInheritedAnnotation2,因此它拥有一个注解MyInheritedAnnotation2。

15、 需要注意的是,通过 `Son1.class.getAnnotations()` 只能获取类上的注解,方法等其他元素的注解不会被包含在内,因此此处并未输出 `MyInheritedAnnotation1` 注解信息。

javaAPI元注解之InheritedjavaAPI元注解之Inherited

文章标题:javaAPI元注解之Inherited

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

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

JAVA API软件简介

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