原始数组类型上的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[]
时唯一适用的T
是int[]
,因为基元数组不会被自动装箱到相应对象类型的数组(在本例中为Integer[]
)。
所以你可以做Arrays.asList(new Integer[] {1, 2, 3});
。
尝试:
Arrays.asList(new Integer[] { 1, 2, 3 });
注意整数而不是int 。 集合只能包含对象。 不允许使用原始类型。 int
不是一个对象,但int[]
是,所以这就是你得到一个元素的列表的原因。