一个类型如何有多个超类型是数组类型,而不是一个数组类型?

时间:2014-12-13 22:55:53

标签: java types specifications inference

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

这里有一条线,其中有一些我难以理解的含义:

" ...在作为数组类型的S的超类型中,识别出最具体的类型,S' [](这可能是S本身)。"

S本身如何成为最具体的数组类型?换句话说,类型如何具有数组类型的超类型,而不是数组类型(因此也是最具体的类型)?

我错过了一些明显的东西吗?

感谢任何人提供任何见解......

1 个答案:

答案 0 :(得分:1)

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