之前一直使用Arrays.asList()方法,将數組轉為集合,今天突然發現該方法存在一些問題,主要是會報java.lang.UnsupportedOperationException異常,查閱資料之後發現問題,使用該方法轉集合的時候不可以用一些集合的方法,貼下代碼
String type = "1;2;3";
List<String> levels = new ArrayList<String>();
List<String> levelids = new ArrayList<String>();
//String[] levels = null;
if (StrUtils.isNotNull(type)) {
String[] levelArr = type.split(";");
levels = Arrays.asList(levelArr);
//levelids = new ArrayList<>(levels);
}
// 此時會報錯
levels.add("4");
System.out.println(levels.toString());
目前是用下面的方法解決這個問題
String type = "1;2;3";
List<String> levels = new ArrayList<String>();
List<String> levelids = new ArrayList<String>();
//String[] levels = null;
if (StrUtils.isNotNull(type)) {
String[] levelArr = type.split(";");
levels = Arrays.asList(levelArr);
levelids = new ArrayList<>(levels);
}
// 這樣可以運作
levelids.add("4");
System.out.println(levelids.toString());