int[] a1=new int[]{1,2,3};
String[] a4=new String[]{"a","b","c"};
Object o=a1;//这样是可以的
Object[] o1=a1;//这样是报错的,因为int[]不能转成Object[],如果把int换成Integer就不错了
Object[] o2=a4;//这样也是对的,由此可知,只有引用类型数组才可以
//下面出现这样的原因,根设计有关,根据jdk文档说明,基本类型的组数,会有专门说明的方式,如:
//int[] 对应[I...] long[] 对应[J...] char[]对应[C...]等,如想看到数组,改成引用的Integer包装类即可
//但我想和数组类型toString()方法实现有关系,内部对各类型的数组toString()重写的内容也不样,这样基本类型toString()是[标志符@hashCode],引用类型toString()就是以逗号分隔的符号
System.out.println(Arrays.asList(a1));
System.out.println(Arrays.asList(a4));
|