为什么int 上的Arrays.asList返回List ,而不是List ?
考虑以下代码:
int[] tcc = {1,2,3}; ArrayList tc = Arrays.asList(tcc);
对于上述情况,Java抱怨它无法从List
转换为ArrayList
。
这有什么问题?
为什么它是List
而不是List
?
ArrayList只能保存对象而不是诸如int之类的基本对象,并且因为int!= Integer,你不能做你正在尝试用基元数组做的事情,就这么简单。 这将适用于整数数组。
这将有效:
ArrayList tc = new ArrayList(Arrays.asList(1,2,3));
你可以这样做:
List tc = Arrays.asList(tcc);
Arrays.asList返回List ,而不是ArrayList。 由于Arrays.asList是一个varargs函数,它认为tcc
是更大数组的一个元素。
如果你想只有一个整数列表,你必须把它重写为在鳗鱼的回答的评论中提到的SB :
List tc = Arrays.asList(1, 2, 3);
或者,如果使tcc
成为Integer[]
,您仍然可以通过显式请求List
of Integer将您的数组用作以下代码段中的参数,并提供与传递的数组一致的类型参数:
Integer[] tcc = {1,2,3}; List tc = Arrays. asList(tcc);