A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiangyutc 中级黑马   /  2014-2-8 09:45  /  1283 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int[] x = {1,2,3,4,5};
Object[] obj = x;

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

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

5 个回复

倒序浏览
你首先要搞清楚基本数据类型和引用数据类型。一个数据是放在堆 一个是放在栈。
回复 使用道具 举报
我的离解:应该是没有将数组里的整数常量自动装箱。所以不能把in[]给Object[];字符串常本来就是对象。所以字符串数组可以直接给Object数组。
但下面这样是可以的:
Object obj = 1;     //将1自动装箱成Integer对象再给obj

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

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


评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
int[ ]中存放的数据是int类型的,int类型为基本数据类型,Object[ ]中存放的是obj,是引用数据类型,类型不一致。
而String[ ]中存放的是String类型,String类型为引用数据类型。
回复 使用道具 举报
int是基本数据类型,而object是类是引用数据类型,String是类也是引用数据类型,所以int不能给object而String可以给object
回复 使用道具 举报
int是基本数据类型,object是所有类的父类。。。
建议使用,int的封装类,Integer   
然后强制转换就可以的,
Integer [] x = {1,2,3,4,5};
Object[] obj = (Integer )x;




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

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马