java中object类型如何与数组类型转换?

bobxuca 2005-11-10 07:22:27
谢谢!
...全文
27826 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Croatia 2005-11-10
  • 打赏
  • 举报
回复
楼上的那些说的都太绝对了。

我举一个例子,
Object a[] = {new String("9"),new String("8")};
String[] b = new String[2];
b = (String[])(a);
这样的例子,编译的时候,不会出错,执行的时候,就会有java.lang.ClassCastException错误。

正确的写法。
Object a[] = new String[]{"9", "8"};
String[] b = new String[2];
b = (String[])(a);
这样才对。

问题就在于,第一种写法,他构造的时候,还是Object。

这个是需要注意的。
believefym 2005-11-10
  • 打赏
  • 举报
回复
如果这个object本来是一个数组,直接强制转换就可以了
asa516 2005-11-10
  • 打赏
  • 举报
回复
应该就是楼上的吧。
搂主是不是能说的更细点
pdvv 2005-11-10
  • 打赏
  • 举报
回复
Object obj = …;

String[] a = (String[]) obj;
believefym 2005-11-10
  • 打赏
  • 举报
回复
Croatia(Croatia)
你那个ClassCastException是你自己的问题
Object a[] = {new String("9"),new String("8")};这句话a里存的只是两个object,里面的string都向上转型了
b = (String[])(a);object[]->string[]明显有问题的
pauliuyou 2005-11-10
  • 打赏
  • 举报
回复
如果知道它是什么,直接转就好了.
如果不知道, if (getClass.isArray()) {
//cast it
}
else {
//wrong!
}

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧