Manoj,
Arrays.List的返回类型是List接口的一些未知内部实现,而不是java.util.ArrayList,因此您只能将其分配给List类型。
如果您将其分配给ArrayList,例如它会在编译时出现错误“类型不匹配:无法从List转换为ArrayList”
ArrayList<String> aList = Arrays.asList(a)
根据
Javadoc,“Arrays.asList返回由指定数组支持的固定大小列表(对返回的列表所做的更改“写入”到数组中)。 "这意味着您只提供了数组的列表视图,我认为它是在运行时创建的,当然您无法更改数组的大小,因此也无法更改“Arrays.asList”的大小。
依我看,Arrays.asList的内部实现具有所有可以更改数组大小的已实现方法,例如-
void add(E e)
{
throw(java.lang.UnsupportedOperationException);
}
每当您试图更改数组的大小时,它都会抛出UnsupportedOperationException异常。
但是,如果您想通过使用这样的语法向ArrayList添加一些新项,可以通过创建Arraylist的子类来实现(最好使用ArrayList的匿名子类)。您可以将Arrays.List的返回类型传递给ArrayList的构造函数(即public ArrayList(Collection c)),类似于以下内容 -
List<String> girlFriends = new java.util.ArrayList<String>(Arrays.asList("Rose", "Leena", "Kim", "Tina"));
girlFriends.add("Sarah");
现在你可以使用相同的语法将Sarah轻松添加到你的女友列表中。
PS - 请将此选项或其他选项作为您的答案,因为已经解释了一切。 你低下的接受率非常令人沮丧。