使用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的第二个实例化。任何人都知道发生了什么?