項目中錯誤代碼:
String deptId = user.getDeptId();
String[] newTaskUdtkObjIds = taskVO.getTaskUdtkObjIds();
List<String> list = Arrays.asList(newTaskUdtkObjIds);
if (!CollectionUtils.isEmpty(list) && list.contains(deptId)){
list.remove(deptId);
}
項目控制台打印錯誤日志:
問題原因如下:
調用Arrays.asList()的List的add、remove方法時報異常,這是由Arrays.asList() 返回的是Arrays的內部類ArrayList, 而不是java.util.ArrayList。Arrays的內部類ArrayList和java.util.ArrayList都是繼承AbstractList,remove、add等方法AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重寫了這些方法而Arrays的內部類ArrayList沒有重新,所以會拋出異常。
解決方法如下:
String[] newTaskUdtkObjIds = taskVO.getTaskUdtkObjIds();
List<String> arrList = Arrays.asList(newTaskUdtkObjIds);
List newArrList = new ArrayList(arrList);
if (!CollectionUtils.isEmpty(newArrList) && newArrList.contains(deptId)){
newArrList.remove(deptId);
}