首页 > 解决方案 > Java将差异数组转换为变量

问题描述

我正在学习 OCA 考试,有些东西淹没了我的吸引力。如果我做这样的演员

Object[] arr = new Object[] { 10, "OZAN", 15.0, 12.5f };
String s = (String) arr[1];

一切都会好起来的。但是如果我尝试那段代码

Object o = new Object();
Integer i = (Integer) o;

它会抛出一个ClassCastException。误解点是,两个我都进行了强制转换操作,但只有一个抛出了ClassCastException。出现这种情况的原因是什么?谢谢你们。

标签: javacastingclasscastexception

解决方案


区别在于对象的真正含义。

如果您Object o = new Integer(5);以示例为例,它不会抛出ClassCastExecption. 这是因为 o 不是整数,它是一个对象,而它arr[1]是一个字符串。它也是一个对象,但它也是一个字符串,这允许它被强制转换。


推荐阅读