2013-03-11 25 views
0

我有以下代碼:Java的:添加新元素到列表<String>

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)"並試圖創建一個子類,但我不得不列表傳遞到子類,以及它仍然沒有工作。

任何人都可以請解釋一下嗎?

非常感謝

+0

感謝Reimeus和Rangi Lin。它符合你的建議。 – L4zl0w 2013-03-11 15:06:42

回答

9

Arrays.asList返回固定大小List。你可以使用

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

這會給你各種元素可以添加一個List

6

此代碼不能工作,因爲Arrays.asList()返回的列表是不可變列表。

您可以從一個ArrayList構造函數構造它使其工作。

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