黑马程序员技术交流社区
标题:
关于Object数组的问题
[打印本页]
作者:
§傻、才乖
时间:
2013-12-9 18:53
标题:
关于Object数组的问题
int[] arr=new int[3];
Object[] obj=arr;
这样为什么不行,请高手 帮忙详细解释下
谢谢
作者:
Faner
时间:
2013-12-9 18:59
Object 不是数据类型!! 数组的定义看看就明白了了!
作者:
ixiangfeng
时间:
2013-12-9 19:08
一个是基本数据类型数组一个是对象型数组 把int 改为Integer就行了
作者:
谢文斌
时间:
2013-12-9 19:10
把int换成Integer就可以了
应该是数据类型不一样吧,一个是装对象,一个是装基本数据类型。
也不知道解释得对不对,抛砖引玉吧,希望有牛人回答。
作者:
Forevery
时间:
2013-12-9 19:12
有趣的问题
作者:
kongling
时间:
2013-12-9 19:20
int[] arr,这样定义以后,因为int[] 的类型实际上为Object,而不是Object[],
所以Object[] obj=arr,这样是将一个 Object 类型赋给Object[],肯定不行
作者:
翼展哈哈
时间:
2013-12-9 19:44
楼主您好!
如果代码改成这样,就可以编译通过。
int[] arr = new int[3];
Object obj = arr;
复制代码
您的代码第二行等号的左边声明了一个Object[]型的数组引用变量obj,第二行等号右边是int[]型的数组引用变量arr,int[]型本身可以被理解成Object型,那样楼主第二行代码就可以解释为:把一个Object型的引用变量,赋值给了一个Object[]型的引用变量,这样是不对的,编译时不通过!
希望楼组可以理解,有什么说的不对,欢迎批评指正!
作者:
§傻、才乖
时间:
2013-12-10 00:41
翼展哈哈 发表于 2013-12-9 19:44
楼主您好!
如果代码改成这样,就可以编译通过。
谢谢,先前是没想这点
作者:
翼展哈哈
时间:
2013-12-10 08:09
§傻、才乖 发表于 2013-12-10 00:41
谢谢,先前是没想这点
不客气……
作者:
末末
时间:
2013-12-10 10:39
因为arr是一个一维数组,里面的数据类型是,int的,不是对象,而你的Object[] obj=arr;这里的意思是说arr数据里的元素类型是Object类型的,但事实不是,所以会报错,如果你用一个二维int型 的数组就不会报错了
int[][] arr=new int[3][4];
Object[] obj=arr;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2