我有一个关于JLS第三版和推理机制的问题。第15.12.2.7节规定:
如果F=U[],其中类型U涉及Tj,则如果A是数组类型V[],或具有上界的数组类型V[]的类型变量
我试图创建一个具有数组类型上限的类型变量,但编译器似乎不接受这一点。类似于:
public class MyClass<T extends String []> {
}
我的问题是:这个片段中的JLS是错的,还是我遗漏了什么?这句话的最后一部分对我来说似乎不太满意
感谢
来自以下错误中的详细信息:
https://bugs.openjdk.java.net/browse/JDK-6557960
JLS有点不连贯,如第4.4节所述:
类型变量有一个可选的绑定T&I 1。。。我。绑定由类型变量、类或接口类型T 组成
类型变量不能有一个数组类型的绑定,这与我的问题(来自第15.12.2.7节)中提到的部分相矛盾:
或具有上界的类型变量,其为数组类型V[]
这一部分可以简单地忽略,因为它永远不会令人满意。
非常感谢biziclop的链接