【发布时间】:2018-07-18 02:09:26
【问题描述】:
假设我想创建一个包含 Integer[] 数组的列表。但是
Integer[] foo = {1,2,3};
List<Integer[]> bar = Arrays.asList(foo);
第二行无法编译,因为Arrays.asList(foo) 将返回一个包含三个 Integer 元素(即 1、2、3)的 List,而不是一个包含单个 Integer[] 元素的 List。
由于文档将 asList 方法的参数声明为 T 类型的可变参数,我不明白为什么编译器不将第二行解释为给定的 Integer[] 类型的单个参数。如何获取单个数组元素的列表?
List<Integer[]> bar = new ArrayList<Integer[]>(Arrays.asList(foo));
这是我真正想做的,但它也无法编译,原因与我相信的相同。
【问题讨论】: