黑马程序员技术交流社区

标题: 关于数组的问题 [打印本页]

作者: jiangyutc    时间: 2014-2-8 09:45
标题: 关于数组的问题
int[] x = {1,2,3,4,5};
Object[] obj = x;

为什么不行呢?麻烦将详细点谢谢!
String[] x1 = {"1","2","3","4","5"};
Object[] obj1 = x1;
为什么可以呢?
               


作者: 黄晓东    时间: 2014-2-8 10:45
你首先要搞清楚基本数据类型和引用数据类型。一个数据是放在堆 一个是放在栈。
作者: e.c    时间: 2014-2-8 14:47
我的离解:应该是没有将数组里的整数常量自动装箱。所以不能把in[]给Object[];字符串常本来就是对象。所以字符串数组可以直接给Object数组。
但下面这样是可以的:
Object obj = 1;     //将1自动装箱成Integer对象再给obj

Integer[] integer = {1};
Object[] objs = integer;

int[] i={1};
obj = i;     //将一个整形数组对象给obj



作者: 也,许。    时间: 2014-2-8 14:47
int[ ]中存放的数据是int类型的,int类型为基本数据类型,Object[ ]中存放的是obj,是引用数据类型,类型不一致。
而String[ ]中存放的是String类型,String类型为引用数据类型。
作者: 廉伟杰    时间: 2014-2-8 16:29
int是基本数据类型,而object是类是引用数据类型,String是类也是引用数据类型,所以int不能给object而String可以给object
作者: 张志明    时间: 2014-2-8 21:20
int是基本数据类型,object是所有类的父类。。。
建议使用,int的封装类,Integer   
然后强制转换就可以的,
Integer [] x = {1,2,3,4,5};
Object[] obj = (Integer )x;




进黑马29期,努力每一天~!!!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2