Arrays.asList如何返回实例化的List?
Arrays.asList
返回一个类型化的List。 但List是一个接口,所以它如何实例化? 如果尝试并实例化一个类型化列表,我会收到一条错误消息,说明它是不可能的。
编辑
没关系我看到发生了什么,只是被文档弄糊涂了一下。
它是一个Arrays.ArrayList
,不应该与java.util.ArrayList
混淆。 它是数组的包装器,表示您所做的任何更改,更改原始数组,并且您无法添加或删除条目。 通常它与ArrayList结合使用
List words = new ArrayList<>(Arrays.asList("Hello", "There", "World"));
当然, List
无法实例化。 但是您可以实例化一个实现 List
的类 – 例如, ArrayList
或LinkedList
等。这些类实际上是List
。 返回List
(接口类型)的意思是该方法可以返回任何实现List
接口的对象,您不应该担心它究竟是哪种具体类型。
从类数组
public static transient List asList(Object aobj[]) { return new ArrayList(aobj); }
因此,当您执行Arrays.asList(…)时,您将获取实现List的ArrayList。 没有人会知道,除了这个本身。
-
1个例子
String [] array = new String [] {“one”,“two”,“three”}; List list = Arrays.asList(array);