java - 一个类型如何有多个父类(super class)型,它们是数组类型,而不是它本身是数组类型?

标签 java types specifications inference

我正在尝试使用 Java 规范中概述的算法编写类型推断的实现代码,地址为 https://docs.oracle.com/javase/specs/jls/se8/html/jls-18.html#jls-18.2.3

这里有一行包含一些我难以理解的含义:

“...在作为数组类型的 S 的父类(super class)型中,确定了一个最具体的类型,S'[](这可能是 S 本身)。”

S 本身如何不是 是最具体的数组类型?换句话说,一个类型怎么可能有作为数组类型的父类(super class)型,而不是它本身是数组类型(因此是最具体的类型)?

我是否遗漏了一些明显的东西?

感谢任何人可以提供的任何见解...

最佳答案

假设您有一个 Double[] 并且选项是 Number[] 或 Object[],那么 Number[] 是最具体的匹配项。执行类型推断时,可能会有多个约束。它甚至可以推断类型 (Serializable[] & Comparable[])

关于java - 一个类型如何有多个父类(super class)型,它们是数组类型,而不是它本身是数组类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464511/

相关文章:

java - ¿如何在 Debug模式下查找请求的参数?

java - 在 Java 中的文本框上绘制对角线

java - 在纯 MVP 中,谁负责导航?

javascript - 为什么 javascript 允许 $ 作为函数名称?

java - 将 Unicode 转换为 UTF-8 byte[] 并保存为字符串 (Java)

c# - 乘法运算符重载修改原始变量(C#)?

python - 如何指定函数参数应为特定数据类型?

haskell - 我可以告诉 GHC 任意选择使用哪个实例,因为我不在乎吗?

entity-framework - 在 EF Code First Orderby 函数期间无法将类型 'System.Int32' 转换为类型“System.Object”

java - 定义 : Unfinalized versus finalizable object