【发布时间】:2020-05-17 00:07:35
【问题描述】:
首先,如果这个问题看起来很愚蠢,请原谅。实际上,我是 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 类的一个实例,这意味着强制转换在逻辑上是正确的。我弄错了吗?
提前致谢。
【问题讨论】:
-
为什么不按照你最初的方式来考虑呢?
Integer[] ob = new Integer[2];?