javaAPI元注解之Inherited
这个注解是Java API中的四个元注解之一,用于修饰其他注解,定义在java.lang.annotation包中。
1、 先阅读注解说明:
2、 已记录:生成API帮助文档时展示注解内容。
3、 保留:JVM保留。
4、 (3)Target:该注解为元注解,用于指定其他注解的使用范围。

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



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

7、 再看Deprecated注解的声明,并未标明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元注解之Inherited
文章链接://www.hpwebtech.com/jiqiao/329583.html
为给用户提供更多有价值信息,ZOL下载站整理发布,如果有侵权请联系删除,转载请保留出处。
其他类似技巧
- 2025-04-02 13:56:01javaAPI元注解之Retention
- 2025-04-02 12:29:01javaAPI元注解之Repeatable
- 2025-04-02 10:14:02android学习札记第5章之模拟航空订票及javaapi
- 2025-04-01 14:52:02如何从官网下载java API
- 2025-04-01 12:05:01javaAPI元注解之Target
- 2025-04-01 11:05:01javaAPI元注解之Inherited
- 2025-04-01 10:16:01javaAPI元注解之Documented
- 2022-03-24 16:47:34java state 状态设计模式
- 2021-10-26 16:44:41JAVA优质代码编写的30条建议
JAVA API软件简介
运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地... 详细介绍»





