【发布时间】:2021-11-29 19:27:32
【问题描述】:
在the Java Language Specification, version 11, section 4.10.2 中,部分内容是在讨论类和接口类型的直接超类型时:
给定具有类型参数 F1,...,Fn (n > 0) 的泛型类或接口 C,参数化类型 C
的直接超类型,其中每个 Ti (1 ≤ i ≤ n) 是一个类型,都是以下几种: […]
C
其中 Si 包含 Ti (1 ≤ i ≤ n) (§4.5.1)。
“包含”是指:
如果 T2 表示的类型集在自反和传递闭包下可证明是 T1 表示的类型集的子集,则称一个类型参数 T1 包含另一个类型参数 T2,写作 T2
[…]
T
注意,T
按照规则,如果我有一个参数化类型 C
这是故意的吗?我问这个问题是因为我对规范的阅读是没有其他规则描述直接超类型关系允许一个类型成为它自己的直接超类型,所以这个让我停下来。
【问题讨论】:
-
感谢您的宝贵时间和评论!是的,我知道正确的超类型,但在直接超类型部分的任何地方都没有提到它,因为它是基于它的。
-
但是参数化类型是它自己的direct超类型,在所有Java类型中是独一无二的。