Java,从固定数组创建ArrayList时出错

时间:2014-10-19 17:12:24

标签: java arrays arraylist

使用Java 1.8,当我执行以下操作时:

final int[] weights = { 812, 123, 442, 321, 322, 242, 555 };
final ArrayList list = new ArrayList();
for(int i : weights)
{
    list.add(i);
}

使用该ArrayList按预期工作。但是,如果我这样做:

final int[] weights = { 812, 123, 442, 321, 322, 242, 555 };
final ArrayList list = new ArrayList(Arrays.asList(weights));

以与上面完全相同的方式使用ArrayList,我得到了

ClassCastException: [I cannot be cast to java.lang.Integer

从这里Create ArrayList from array我觉得在第二种情况下我正在做的事情是正确的,为什么我会得到例外?

还应该注意到NB 8警告我"混淆原始数组传递给vararg方法"用于上面的ArrayList的第二个实例化。任何人都知道发生了什么?

0 个答案:

没有答案