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

© on-on 中级黑马   /  2014-7-2 15:24  /  941 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.int []a1 = new int[2];
2.Object o1 = 1;
3.Object[] o2 = a1;
为什么第三行编译不通过?第二行都可以,为什么第三行不行?

3 个回复

倒序浏览
本帖最后由 ☆枫の云 于 2014-7-2 17:03 编辑

第二行可以是因为,1.5的自动装箱功能,1会从int被自动装箱为Integer,第三行不行是因,这个int数组不会自动装箱,如果是Object[ ] o2 = new Integer[ 5 ];这个就可以。
回复 使用道具 举报
因为a1是int型的数组,无法将int型的数组直接赋值给Object型的
回复 使用道具 举报
你用一个Object对象数组当然不能指向基本类型int数组,第二行会把 1 装包成为对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马