为什么不能由Object[]数组强转成Integer[]数组.
1 Object[] ins= { 2 new Integer(0), 3 new Integer(1), 4 new Integer(2), 5 new Integer(3), 6 }; 7 Integer[] i = (Integer[]) ins;
执行时,系统报
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
如果改成下面的方式就可以了:
1 Object[] ins= { 2 new Integer(0), 3 new Integer(1), 4 new Integer(2), 5 new Integer(3), 6 }; 7 Integer[] i = new Integer[ins.length]; 8 for(int k = 0; k < ins.length; k++){ 9 i[k] = Integer.parseInt(ins[k].toString()); 10 System.out.println(i[k]); 11 }
为什么Object[]数组不能强转成Integer[]数组呢?
其实Object[]数组和Integer[]数组之前的关系并没有继承之间的关系,Integer[]的是Object的子类,并不是Object[]数组的之类.
Object[]数组是Object的之类.....
强转的话还是要一个个的对单独的元素进行强转.