起初,请问这个问题看起来很愚蠢。实际上,我是Java编程的新手。我有以下代码:
public class Test{
public static void main(String[] args){
Object[] ob = new Object[2];
ob[0] = new Integer("1");
ob[1] = new Integer("2");
Integer[] o = (Integer)ob;
System.out.println(o.length());
}
}
编译此代码时,将引发classCastException
异常。为什么?。我知道Object
类型不能转换为Integer
类型。但是,实际上,数组ob
的每个元素都是Integer
类的实例,这意味着强制转换在逻辑上是正确的。我误会了吗?
提前感谢。
不,这不行。
ob
是Object []类型的数组,您想转换为Integer [],所以面对ClassCastException
,您可以使用Arrays.copyOf()
将所有元素转换为Integer,如果可以的话