java.lang.UnsupportedOperationException处理办法
一、背景
对list进行操作时,抛出异常java.lang.UnsupportedOperationException
二、原因
通过Arrays.asList()转集合生成的List是Arrays内部类ArrayList(Arrays$ArrayList),不是java.util.ArrayList;
Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法都是父类AbstractList中的方法,remove、add等方法在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。
java.util.ArrayList重写这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。
同样的Addall,removeAll因为调用了add,remove方法一样会抛这个异常。
三、解决方案
所以,通过Arrays.asList()生成的List不能使用add,addAll,remove,removeAll等方法,需要转成java.util.ArrayList才行。
3.1 通过新建一个java.util.ArrayList
3.2 通过stream流操作转java.util.ArrayList
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步