黑马程序员技术交流社区
标题:
在看高新技术时遇到的一个疑惑?
[打印本页]
作者:
潘廖明
时间:
2013-5-10 23:38
标题:
在看高新技术时遇到的一个疑惑?
本帖最后由 潘廖明 于 2013-5-13 12:51 编辑
Arrays.asList
()
方法处理
int
[]
和
String[]
时差异的原因?
作者:
范德农
时间:
2013-5-11 02:09
这是因为JDK版本的历史原因造就的。
因为int不是Object的类型[* int[] 是Object类型 ],所以jdk1.4的方法Arrays.asList(Object[] obj)是不适用的,所以只能按jdk1.5的走,把int[]作为一个Object,就打印出了这种效果[[I@1cfb549]。而String是Object.
作者:
java冬冬
时间:
2013-5-11 03:05
int[] a1 = new int[]{1,2,3};
String[] a4 = new String[]{"a","b","c"};
System.out.println(Arrays.asList(a1));//输出 [[I@ca0b6]
System.out.println(Arrays.asList(a4));//输出[a,b,c]
复制代码
1.4版本 asList(Object[] obj) ,1.5版本 asList(T...a),因为int[]不可以转换成Object[],所以是1.5版本的方法,接收的是对象,打印哈希码,
而String[]可以被当做Object[]类型,所以是1.4版本方法{:soso_e152:}
作者:
潘廖明
时间:
2013-5-11 14:54
范德农 发表于 2013-5-11 02:09
这是因为JDK版本的历史原因造就的。
因为int不是Object的类型[* int[] 是Object类型 ],所以jdk1.4的方法Ar ...
那JDK1.5asList(T...t)数据类型,基本类型数据类型不能够被泛化,所以应该是用包装类型,那 String[]算是包装类型,为什么要回去调用1.4asList(Object[] obj)呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2