日期:2014-05-20  浏览次数:20663 次

Cannot cast from int[] to Object[]
如题:
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>
这个差别很大的 楼主把这个概念先想清楚下