当前位置: 代码迷 >> J2EE >> Cannot cast from int[] to Object[],该如何解决
  详细解决方案

Cannot cast from int[] to Object[],该如何解决

热度:599   发布时间:2016-04-22 03:40:03.0
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>
这个差别很大的 楼主把这个概念先想清楚下
  相关解决方案