原始数组类型上的Java Arrays.asList产生意外的List类型

可能重复:
Arrays.asList()不能正常工作?

显然是Arrays.asList(new int[] { 1, 2, 3 });的返回类型Arrays.asList(new int[] { 1, 2, 3 });List 。 这似乎完全打破了我。 这是否与Java有关,而不是原始类型的自动装箱arrays?

问题是Arrays.asList采用T... array的参数。 传递int[]时唯一适用的Tint[] ,因为基元数组不会被自动装箱到相应对象类型的数组(在本例中为Integer[] )。

所以你可以做Arrays.asList(new Integer[] {1, 2, 3});

尝试:

 Arrays.asList(new Integer[] { 1, 2, 3 }); 

注意整数而不是int 。 集合只能包含对象。 不允许使用原始类型。 int不是一个对象,但int[]是,所以这就是你得到一个元素的列表的原因。