java.lang.UnsupportedOperationException解決方法


 項目中錯誤代碼:

  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);
  }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM