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

Fin*_*arr 17 java arrays primitive autoboxing

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

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

sjr*_*sjr 8

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

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


Rek*_*kin 5

尝试:

Arrays.asList(new Integer[] { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)

注意Integer而不是int。集合只能包含对象。不允许原始类型。int不是一个对象,而是一个对象,int[]所以这就是为什么你得到一个元素的列表。