java – 使用Arrays.asList()进行拳击

在以下示例中:

class ZiggyTest2{
    public static void main(String[] args){

        int[] a = { 1, 2, 3, 4,7};      

        List<Integer> li2 = new ArrayList<Integer>();
        li2 = Arrays.asList(a);     

    }
}   

编译器抱怨int []和java.lang.Integer不兼容.即

found   : java.util.List<int[]>
required: java.util.List<java.lang.Integer>
                li2 = Arrays.asList(a);
                               ^

如果我更改List定义以删除泛型类型,它工作正常.

List li2 = new ArrayList();

>编译器是否应该自动将整数注入?
>如何创建List< Integer>使用的int数组中的对象
Arrays.asList()?

谢谢

Java不支持将整个基元数组自动装入其对应的包装类中.解决方案是使您的数组类型为Integer [].在这种情况下,每个int都会单独装入一个Integer.

int[] a = { 1, 2, 3, 4, 7 };
List<Integer> li2 = new ArrayList<Integer>();
for (int i : a) {
    li2.add(i); // auto-boxing happens here
}
https://stackoverflow.com/questions/8386987/boxing-with-arrays-aslist

转载注明原文:java – 使用Arrays.asList()进行拳击