关于Object[]数组强转成Integer[]类型的数组.

时间:2021-04-07 15:28:16

为什么不能由Object[]数组强转成Integer[]数组.

 Object[] ins= {
new Integer(0),
new Integer(1),
new Integer(2),
new Integer(3),
};
Integer[] i = (Integer[]) ins;

执行时,系统报 
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

如果改成下面的方式就可以了:

 Object[] ins= {
new Integer(0),
new Integer(1),
new Integer(2),
new Integer(3),
};
Integer[] i = new Integer[ins.length];
for(int k = 0; k < ins.length; k++){
i[k] = Integer.parseInt(ins[k].toString());
System.out.println(i[k]);
}

为什么Object[]数组不能强转成Integer[]数组呢?

其实Object[]数组和Integer[]数组之前的关系并没有继承之间的关系,Integer[]的是Object的子类,并不是Object[]数组的之类.

Object[]数组是Object的之类.....

强转的话还是要一个个的对单独的元素进行强转.