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是错误的,还是我错过了什么?句子的最后一部分似乎对我不满意.
谢谢
从以下错误的详细信息来看:
https://bugs.openjdk.java.net/browse/JDK-6557960
JLS 有点语无伦次,正如第 4.4 节所述:
类型变量有一个可选的界限 T & I 1 ... I n 。边界由类型变量、类或接口类型 T 组成
类型变量不能有一个数组类型的界限,这与我的问题中上面提到的部分相矛盾(来自第 15.12.2.7 节):
或上限为数组类型 V[] 的类型变量
这部分可以简单地忽略,因为它永远无法满足。
非常感谢 biziclop 的链接