可能重复:
Why I get UnsupportedOperationException when trying to remove from the List?
当我调用List.remove(index)或list.remove(element)时,它会引发java.lang.UnsupportedOperationException。唯一相关的错误代码是:
17:08:10 [SEVERE] at java.util.AbstractList.remove(Unknown Source)
以下是一个例子:
String line = "cmd /say This is a test";
String[] segments = line.split(" ");
String cmd = segments[0];
List rest = Arrays.asList(segments);
rest.remove(0); // This line raises the exception
有谁知道为什么会这样?在我的执行代码中,我检查了索引0处有一个元素要删除。
答案 0 :(得分:12)
来自Arrays.asList()
的JavaDoc:
返回由指定数组支持的固定大小的列表。 (改为 返回的列表“直写”到数组。)
所以不是固定大小的列表:
List rest = Arrays.asList(segments);
创建一个新的可变大小列表:
List<String> rest = new ArrayList<String>(Arrays.asList(segments));