Java Arrays.asList(int[])如何返回列表<;int[]>;?
在做简单的程序时,我注意到了这个问题Java Arrays.asList(int[])如何返回列表<;int[]>;?,java,Java,在做简单的程序时,我注意到了这个问题 int[] example = new int[10]; List<Integer> exampleList = Arrays.asList(example);// Compilation error here 因此它将int[]视为T,这就是为什么会发生这种情况。在数组中没有对底层int进行自动装箱。asList int[]实际上是一个对象,而不是原语 这里Arrays.asList(示例)返回List列表确实是无效语法 您可以使用:
int[] example = new int[10];
List<Integer> exampleList = Arrays.asList(example);// Compilation error here
因此它将int[]视为T,这就是为什么会发生这种情况。在
数组中没有对底层int进行自动装箱。asList
实际上是一个对象,而不是原语int[]
- 这里
返回Arrays.asList(示例)
<代码>列表确实是无效语法List
- 您可以使用:
List exampleList=Arrays.asList(ArrayUtils.toObject(array))
使用Apache Commons
ArrayUtils
List
(int数组列表),而不是List
数组。asList(…)
可以完美地将对象数组转换为这些对象的列表
<>代码>数组.aslist(…)<代码>在java 5中用Valg构造定义,或者,按顺序,它可以接受一个未定义的参数数量,在这种情况下,它将把所有这些参数看作数组的成员,然后返回包含这些元素的<代码>列表实例。
List<Object> objList = Arrays.asList(obj1, obj2, obj3);
签名List asList(T…os)
涉及一个泛型类型T
。泛型类型的范围仅包括引用类型(包括数组类型),而不包括基元类型。因此,在使用int[]ints
调用Arrays.asList(ints)
时,T
只能解析为int[]
在更高的层次上,Arrays.asList
的目的是提供数组的列表视图。这意味着数组保持不变,其元素通过实现列表的对象可用。但是,List
s只能包含对象,并且数组包含基元int
s。这使得数组无法通过列表
接口公开
无论如何,如果您正在寻找一种优雅的语法来创建一个整数列表
,请编写数组。asList(1,2,3)
相关:您想知道数组是如何实现的。asList
可以返回一个列表
,但您收到的错误消息清楚地表明您是列表
,而不是列表
。
List<Object> objList = Arrays.asList(obj1, obj2, obj3);
List<Object> objList = Arrays.asList(obj1);
List<int[]> intArrayList = Arrays.asList(new int[]{ 1, 2, 3 });