此作品之间的区别:什么是对象数组和字符串数组
Object[] array = new Object[3];
array[0] = "ddd";
array[1] = new Integer(12);
这并不:(新在整数崩溃)
Object[] array2 = new String[3];
array2[0] = "ddd";
array2[1] = new Integer(12);
我读过有关covariance但仍无法理解第二个代码示例被禁止的基本技术原因,或者为什么抛出ArrayStoreException。 本质上,Object引用数组和String引用数组之间的区别是什么?
我明白,在第二个例子中,数组被实例化为向其添加字符串的意图,但是仍然有些东西不会在逻辑上点击。有人可以用简单的术语来解释它吗?
因此,禁止添加以防止其他问题(如ClassCastException)进一步受阻可能更好? – Sjoerd
@Sjoerd - 是的。你能想象一下,如果执行一个静态类型安全的赋值或表达式会导致一个'ClassCastException',Java会是什么样子? –