Arrays.asList
返回一个键入的列表。但List是一个接口,所以它如何实例化?如果尝试并实例化一个类型化列表,我会收到一条错误消息,说明它是不可能的。
修改
没关系我看到发生了什么,只是被文档弄糊涂了一会儿。
答案 0 :(得分:5)
这是Arrays.ArrayList
,不应与java.util.ArrayList
混淆。它是数组的包装器,表示您所做的任何更改,更改原始数组,并且您无法添加或删除条目。通常它与ArrayList结合使用,如
List<String> words = new ArrayList<>(Arrays.asList("Hello", "There", "World"));
答案 1 :(得分:1)
肯定无法实例化List
。但是您可以实例化一个实现 List
的类 - 例如,ArrayList
或LinkedList
等。这些类实际上是List
个。返回List
(接口类型)的意思是该方法可以返回任何实现List
接口的对象,您不应该担心它究竟属于哪种具体类型。
答案 2 :(得分:0)
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);