Java集合中的泛型为什么不能Upcasting?

典型的例子是:List<Object> objects = (List<Object>) new List<String>()

可能很多人(包括我在内)起初都会认为这是无法理解的。那么请看下面的代码:

objects.add(new Integer(7));

假设前述的类型转换成立,那么这个objects实例中不就可以加入新的Integer项了?这等于是破坏了List<String>的约束。由于这个反例的存在,所以上述类型转换是不被Java所允许的。

《Java集合中的泛型为什么不能Upcasting?》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注