Arrays.asList
返回一个类型化列表。但是List是一个接口,所以如何实例化它呢?如果尝试实例化一个类型化列表,我得到一个错误,说这是不可能的。
编辑
没关系,我知道是怎么回事,只是被文档弄糊涂了一会儿。
这是一个不应该与java.util.ArrayList
混淆的Arrays.ArrayList
。它是数组的包装器,这意味着您所做的任何更改,更改原始数组,并且您不能添加或删除条目。它通常与ArrayList组合使用,如
List<String> words = new ArrayList<>(Arrays.asList("Hello", "There", "World"));
当然不能实例化List
。但是您可以实例化一个实现 List
的类——例如,ArrayList
或LinkedList
,等等。这些类确实是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"};