日期:2014-05-20 浏览次数:20663 次
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)); //这个可以 }
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>
这个差别很大的 楼主把这个概念先想清楚下