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

la_*_*rre 5 java generics type-inference jls

我对JLS第3版和推理机制有疑问.第15.12.2.7规定:

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

我尝试创建一个数组类型上限的类型变量,但编译器似乎不接受这一点.就像是:

public class MyClass<T extends String []> { 
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

la_*_*rre 2

从以下错误的详细信息来看:

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

JLS 有点语无伦次,正如第 4.4 节所述:

类型变量有一个可选的界限 T & I 1 ... I n 。边界由类型变量、类或接口类型 T 组成

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

或上限为数组类型 V[] 的类型变量

这部分可以简单地忽略,因为它永远无法满足。

非常感谢 biziclop 的链接