本文主要是介绍数组有内建的协变类型,而泛型没有,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
List<Number> list = new List<Integer>
是编译错误的;
但Number[] array = {new Integer, new Double, new Float}
是正确的。
解释:
- 两个泛型之间是没有关系的(所以自然没有继承关系)
List<Integer>
在类型上不等价于List<Number>
- 真正的问题在于,这里讨论的是容器的类型,而不是容器持有的类型。
Java编程思想P390-391
Java编程思想P407,自限定类型可产生协变参数类型
这篇关于数组有内建的协变类型,而泛型没有的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!