如题:
- Java code
public static void main(String[] args) { int[] arr = new int[]{1,2,4,5,6,7}; System.out.println(Arrays.asList((Object[])arr)); //报错:Cannot cast from int[] to Object[] Integer[] arr1 = new Integer[]{1,2,4,5,6,7}; System.out.println(Arrays.asList((Object[])arr1)); //这个可以 }
希望把int[]转换为Object[],而不是Integer[]转换为Object[],大家赐招。
PS:为什么下面可以上面却不行?
------解决方案--------------------
Integer是类,而int是基本类型
------解决方案--------------------
- Java code
public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); }
------解决方案--------------------
为何要转
Arrays.asList(arr); arr如果是int[] 他会把int[]认为是Object的子类 返回类型是List<int[]>
而Integer就不同了 他本身就是Object的子类 你传到asList里面会认为就是Integer数组 返回的是List<Integer>
这个差别很大的 楼主把这个概念先想清楚下