0

我有以下代码:

public void parseAttribs(String attribs){

   //attribs is a comma separated list
   //we are making a List from attribs by splitting the string at the commas

   List<String> attributes = Arrays.asList(attribs.split("\\s*,\\s*"));

   //when I try to add an element to the attributes List if fails
   attributes.add("an element");

我发现这个Unable to add a String to an ArrayList: "misplaced construct(s)"并试图创建一个子类,但我也必须将 List 传递给子类,但它仍然不起作用。

任何人都可以对此有所了解吗?

非常感谢

4

2 回答 2

9

Arrays.asList返回一个固定大小的List. 你可以使用

new ArrayList<String>(Arrays.asList(...)))

这将为您提供可以添加List元素的位置。

于 2013-03-11T13:44:00.470 回答
6

此代码将不起作用,因为返回的列表Arrays.asList()是不可变列表。

您可以从 ArrayList 构造函数进行构造以使其工作。

List<String> attributes = new ArrayList<String>(Arrays.asList(attribs.split("\\s*,\\s*")));
于 2013-03-11T13:43:55.837 回答