Java推理:类型变量,其上限是数组类型

时间:2015-11-16 15:20:18

标签: java generics type-inference jls

我对JLS第3版和推理机制有疑问。 15.12.2.7部分说明:

  

如果F = U [],其中类型U涉及Tj,那么如果A是数组类型   V [],或类型变量,其上限是数组类型V []

我尝试创建一个数组类型上限的类型变量,但编译器似乎并不接受这一点。类似的东西:

Repr

我的问题是:这个片段中的JLS是错误的,还是我错过了什么?句子的最后一部分似乎对我不满意。

由于

1 个答案:

答案 0 :(得分:2)

来自以下错误的详细信息:

https://bugs.openjdk.java.net/browse/JDK-6557960

JLS有点不连贯,正如4.4节所述:

  

类型变量具有可选的界限,T&我1 ...我。界限   由类型变量或类或接口类型T

组成

类型变量不能有一个数组类型的绑定,这与我上面提到的部分(来自15.12.2.7节)相矛盾:

  

或类型变量,其上限是数组类型V []

这部分可以简单地忽略,因为它永远不会令人满意。

非常感谢biziclop的链接