調用 list.clear() 時報這個錯誤,原因是我的 list 是從數組轉化過來的:list = Arrays.asList(array)
原因:
Arrays.asList() 返回的是 Arrays 的內部類 ArrayList, 而不是 java.util.ArrayList。Arrays 的內部類 ArrayList 和 java.util.ArrayList 都是繼承自 AbstractList,clear() 以及 java.util.ArrayList 的一些操作方法,如 add()、remove() 在 AbstractList 中是默認throw UnsupportedOperationException 而且不作任何操作。java.util.ArrayList重新了這些方法而Arrays的內部類ArrayList沒有,所以會拋出異常。
解決:
定義一個新的 java.util.ArrayList 對象作爲“中間人”進行轉化
java.util.ArrayList tempList = new ArrayList();
tempList = Arrays.asList(array);
java.util.ArrayList list = new ArrayList(tempList);