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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我手心里的宝 高级黑马   /  2013-4-7 17:13  /  1420 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我手心里的宝 于 2013-4-8 08:53 编辑

为什么int[] arr = new int[5];
Arrays.asList(arr);
为什么打印的结果是arr的地址值呢?而不是数组里面的元素
求解?

3 个回复

倒序浏览
因为当基本类型数组转为一个对象时,一维数组会把这个数组转为一个对象,只有二维数组才是一个对象的数组,这在张孝详老师的视频里有说过的.
当你把int改为integer时也就是一组对象时就正常了.
回复 使用道具 举报
沙发说的对,是基本类型......
回复 使用道具 举报
你可以看一下 asList的参数列表asList(T... a)   
对于1.5新特性来说 这是可变参数,那么传入的arr不会被解开 整个数组被当做list中的一个元素
对于1.4来说,需要传入一个数组来表示多个参数,但是必须是object[]数组.int是基本数据类型,不属于object.于是没法处理.只能用1.5的语法去处理.
这里如果是Integer[]应该就可以了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马