1

Arrays.asList返回一个类型化的列表。但是 List 是一个接口,那么如何实例化呢?如果尝试实例化一个类型化的列表,我会收到一条错误消息,指出这是不可能的。

编辑

没关系,我看到发生了什么,只是被文档迷惑了一会儿。

4

3 回答 3

6

这是一个Arrays.ArrayList不应该与 混淆java.util.ArrayList。它是数组的包装器,这意味着您所做的任何更改都会更改原始数组,并且您无法添加或删除条目。通常它与 ArrayList 结合使用,例如

 List<String> words = new ArrayList<>(Arrays.asList("Hello", "There", "World"));
于 2012-12-30T19:30:59.757 回答
1

AList不能被实例化,当然。但是您可以实例化一个实现 List的类——例如,一个ArrayListorLinkedList等​​。这些类实际上是Lists。返回 a List(接口类型)的重点是该方法可以返回实现该List接口的任何对象,您不必担心它究竟是哪种具体类型。

于 2012-12-30T19:38:24.057 回答
0

从类数组

public static transient List asList(Object aobj[])
{
    return new ArrayList(aobj);
}

因此,当您执行 Arrays.asList(...) 时,您将采用实现 List 的 ArrayList。没有人会知道这一点,除了这个本身。

  • 1 个例子

    字符串[] 数组 = 新字符串[] {"一","二","三"}; 列表列表 = Arrays.asList(array);

于 2012-12-30T21:24:41.487 回答