Object o=new int[]{1,2,3};
int[] array=(int[]) o;
for(int a:array){
//print the values
}
- 为什么我在迭代数组的过程中得到一个classcast异常,因为该数组扩展了Object类?
答案 0 :(得分:1)
因为在java 中,偶数数组是 Objects 。 。如果您打印array instanceof Object
,则返回true。
接下来,您将创建一个数组并使用 Objects 引用。由于最终实例是数组,因此不会出现任何异常。
答案 1 :(得分:0)
Object是Java中所有类的超类。每个类都肆无忌惮地扩展对象。因此,任何类的实例都可以转换为Object类型。
答案 2 :(得分:0)
因为o
本身是 int[]
数组 - 数组类型。例如,如果它是o = new long[] {...}
- 在这种情况下,是的,它将抛出异常。