为了账号安全,请及时绑定邮箱和手机立即绑定

Java 中 Object[] 转 String[],转换失败,报java.lang.ClassCastException异常

Java 中 Object[] 转 String[],转换失败,报java.lang.ClassCastException异常

鸿蒙传说 2018-12-06 23:14:27
1 Object obj = "String"; 2 String str = (String) obj; // OK 3 4 Object[] arr = new String[] { "ab", "cd" }; 5 String[] arr2 = (String[]) arr; // OK 6 7 Object[] objs = {"One", "two"}; 8 String[] strs = (String[]) objs; // java.lang.ClassCastException异常,Why? 对于第8行代码报错的情况不理解,为什么报错。 我现有的认识是,objs的每个元素引用的不是String对象吗,按1、2行的代码来讲,再强制转换回来应该是可以的。 请指教,感恩!!!
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

Java的Object数组不能转换成为String[]数组,要转换的数组它本身是Object类型的数组,但要把它转换为String类的数组,这当然是错误的。上边两个调用的构造函数都是String的构造函数,所以本身就是String类型的。当然没有错了。看看我的代码和运行结果。

查看完整回答
反对 回复 2018-12-16
?
FFIVE

TA贡献1797条经验 获得超6个赞

//1.Object[]中可以存储任何类型的对象(任意类型不是Object就是其子类), String[]中可以存储String及其子类对象
//2.对1进行概括,对于T[],其中只能存储T及其子类的对象
//3.关于String[]可以赋值给Object[]的可能解释: String[]中所有对象都属于Object及其子类;
// 关于Object[]不能转换为String[]的可能解释: Object[]中的某些对象属于Object或Object的子类, 且不属于String及其子类
//String好像没有子类...emmc

查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 590 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号