我尝试使用Java规范中概述的算法编写类型推断的实现,https://docs.oracle.com/javase/specs/jls/se8/html/jls-18.html#jls-18.2.3
这里有一条线,其中有一些我难以理解的含义:
" ...在作为数组类型的S的超类型中,识别出最具体的类型,S' [](这可能是S本身)。"
S本身不如何成为最具体的数组类型?换句话说,类型如何具有数组类型的超类型,而不是数组类型(因此也是最具体的类型)?
我错过了一些明显的东西吗?
感谢任何人提供任何见解......
答案 0 :(得分:1)
假设你有一个Double []并且选项是Number []或Object []则Number []是最具体的匹配。执行类型推断时,可能存在多个约束。它甚至可以推断出类型(Serializable []& Comparable [])