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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孔斌 中级黑马   /  2013-1-31 15:56  /  1585 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int []a = new int[]{1,2,3};//基本类型不是Object
  2.                 String b[] = new String[]{"aaa","bbb","ccc"};
  3.                 Object aObj = a;
  4.                 //Object[] aObj3 = a; 这个地方为什么编译不通过,
  5.                 Object[] bObj = b;
  6.                 //System.out.println(Arrays.asList(a));//不能打印这个的原因是什么呢?
复制代码
这个地方还是有点不懂?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

倒序浏览
你都说了in是基本数据类型不是对象,当然不能用对象数组表示,还有将a转换为list后打印的结果很正常啊

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
原因是a里面是基本类型 不是object,所以编译不能通过,也不能打印

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
你自己都知道基本类型不是Object,那再推到一下就知道基本数据类型数组不是Object[]了。至于为什么System.out.println(Arrays.asList(a));不能打印,这你说错了,肯定是能打印,只不过因为a是相当于一个Object对象存进了List集合,那打印的肯定就是集合里这个Object对象,由于是数组就理所应当的是地址值了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
int[]到object[] 的转换是不可以的,就是基本类型与object类型是不同的
而你说的打印不出是什么意思?是说的打印不出数组中的元素吧,若是的话,这是因为asList方法中声明是这样的
public static <T> List<T> asList(T... a)
传入什么类型返回什么类型的list集合,代码中传入的是int[],那么返回的是List<int[]>类型的集合,而List集合并没有覆盖toString()方法那么打印的肯定是类似于[[I@。。。之类的hashcode值

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

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