黑马程序员技术交流社区
标题:
有关反射的一点小问题?
[打印本页]
作者:
孔斌
时间:
2013-1-31 15:56
标题:
有关反射的一点小问题?
int []a = new int[]{1,2,3};//基本类型不是Object
String b[] = new String[]{"aaa","bbb","ccc"};
Object aObj = a;
//Object[] aObj3 = a; 这个地方为什么编译不通过,
Object[] bObj = b;
//System.out.println(Arrays.asList(a));//不能打印这个的原因是什么呢?
复制代码
这个地方还是有点不懂?
作者:
小学生0987
时间:
2013-1-31 17:35
你都说了in是基本数据类型不是对象,当然不能用对象数组表示,还有将a转换为list后打印的结果很正常啊
作者:
邝雄伟
时间:
2013-1-31 18:09
原因是a里面是基本类型 不是object,所以编译不能通过,也不能打印
作者:
谢毅
时间:
2013-1-31 18:24
你自己都知道基本类型不是Object,那再推到一下就知道基本数据类型数组不是Object[]了。至于为什么System.out.println(Arrays.asList(a));不能打印,这你说错了,肯定是能打印,只不过因为a是相当于一个Object对象存进了List集合,那打印的肯定就是集合里这个Object对象,由于是数组就理所应当的是地址值了。
作者:
王立浩
时间:
2013-1-31 22:04
int[]到object[] 的转换是不可以的,就是基本类型与object类型是不同的
而你说的打印不出是什么意思?是说的打印不出数组中的元素吧,若是的话,这是因为asList方法中声明是这样的
public static <T> List<T> asList(T... a)
传入什么类型返回什么类型的list集合,代码中传入的是int[],那么返回的是List<int[]>类型的集合,而List集合并没有覆盖toString()方法那么打印的肯定是类似于[[I@。。。之类的hashcode值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2