【发布时间】:2014-08-18 06:05:56
【问题描述】:
正如乔恩对此post 的回答所说,如果编译器允许这种转换(如下所示),那么稍后添加一些其他对象对程序来说可能是一件坏事。
ArrayList<String> temList = new ArrayList<String>();
ArrayList<Object> obList = (ArrayList<Object>)temList;//compile error
//obList.add(1); --bad
但让我困惑的是为什么在相同的情况下,数组有不同的行为。
String[] strings = new String[10];
Object[] temp = (Object[])strings;//nothing happens
那么谁能解释一下这里的区别是什么以及为什么java会做出这样的设计?谢谢。
编辑:一个类似的question
【问题讨论】:
-
@user3580294 感谢您的提醒
标签: java arrays arraylist casting