当我执行以下操作时,
arrayList1
- 包含一个元素,它是一个int[]
.arrayList2
- 未编译(错误:构造函数ArrayList<Integer>(List<int[]>)
未定义)arrayList3
- 包含 7 个元素,它们是Integer
对象
这是代码:
int[] intArray = new int[]{2,3,4,5,6,7,8};
ArrayList arrayList1 = new ArrayList(Arrays.asList(intArray));
ArrayList<Integer> arrayList2 = new ArrayList<Integer>(Arrays.asList(intArray));
Integer[] integerArray = new Integer[]{2,3,4,5,6,7,8};
ArrayList<Integer> arrayList3 = new ArrayList<Integer>(Arrays.asList(integerArray));
问题:
为什么编译器不自动装箱int[]
to中的元素Integer
并创建一个ArrayList<Integer>
?这背后的原因是什么?是我的愚蠢还是其他原因?