如何可以数组.返回一个实例化的List



Arrays.asList返回一个类型化列表。但是List是一个接口,所以如何实例化它呢?如果尝试实例化一个类型化列表,我得到一个错误,说这是不可能的。

编辑

没关系,我知道是怎么回事,只是被文档弄糊涂了一会儿。

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

 List<String> words = new ArrayList<>(Arrays.asList("Hello", "There", "World"));

当然不能实例化List。但是您可以实例化一个实现 List的类——例如,ArrayListLinkedList,等等。这些类确实是List。返回List(接口类型)的意义在于该方法可以返回任何实现List接口的对象,您不应该担心它究竟是哪种具体类型。

from class Arrays

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

所以当你执行Arrays.asList(…)时,你将使用ArrayList来实现List。没有人会知道,除了他自己。

  • 1示例

    String[]数组= new String[]{"1","2","3"};

最新更新