在Java中从Object类型转换为Integer类型时,ClassCastException

问题描述 投票:0回答:2

起初,请问这个问题看起来很愚蠢。实际上,我是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类的实例,这意味着强制转换在逻辑上是正确的。我误会了吗?

提前感谢。

java classcastexception
2个回答
0
投票

不,这不行。


0
投票

ob是Object []类型的数组,您想转换为Integer [],所以面对ClassCastException,您可以使用Arrays.copyOf()将所有元素转换为Integer,如果可以的话

© www.soinside.com 2019 - 2024. All rights reserved.