由于Jon的这个post的回答已经说过,如果编译器允许这个cast(如下所示),稍后添加一些其他对象对于程序来说可能是件坏事。java中cast阵列列表和cast数组之间的区别
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感谢您的提醒 – Tony