黑马程序员技术交流社区
标题:
Object数组和Sting数组等对象数组的关系疑问
[打印本页]
作者:
吴立杰
时间:
2012-8-2 21:01
标题:
Object数组和Sting数组等对象数组的关系疑问
Object[] objs = new Object[3];
String[] strs = (String[])objs;//编译通过,但是运行后无法转换
张老师说因为Object[] 不是String[] 的父类,所以不存在强转,但是为什么强转却通过了呢?
作者:
冯华亮
时间:
2012-8-2 21:11
你可以这样写好了
Object[] objs = new Object[n];
String[] strs = new String[n];
for(int i=0;i<n;i++)
{
strs[i]=(String)objs[i];
}
objs[i]元素类型是Object,通过强制转换成String类型的strs[i]元素
作者:
王龙彪
时间:
2012-8-2 21:12
Object[] objs = new String[3];
String[] array = (String[])objs;
复制代码
这样才可以强转
作者:
尤洋
时间:
2012-8-2 21:40
Object[] 不是String[] 的父类,所以不存在强转,这是逻辑问题,而编译只检查语法问题。
在运行时才会检查逻辑问题
作者:
hello world
时间:
2012-8-2 22:06
这和Child extends Parent 一样 Person p=new Person();Child c=(Child)p道理一样,编译能通过,运行不能通过。Person[] p=new Person[3];Child[] c=(Child[])p也是如此。Person[] p=new Child[3];Child[] c=(Child[])p这样就没问题了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2