版权声明:本文为博主原创,转载请注明出处。 https://blog.csdn.net/u011848397/article/details/88915948
List<Number> list = new List<Integer>
是编译错误的;
但Number[] array = {new Integer, new Double, new Float}
是正确的。
解释:
- 两个泛型之间是没有关系的(所以自然没有继承关系)
List<Integer>
在类型上不等价于List<Number>
- 真正的问题在于,这里讨论的是容器的类型,而不是容器持有的类型。
Java编程思想P390-391
Java编程思想P407,自限定类型可产生协变参数类型