Java++:Arrays.asList() - java.lang.UnsupportedOperationException异常处理
这个异常遇到了才知道坑这么大,坑爹的方法。
private String[] otherUserFromArray = new String[]{“3”, “4”, “发放”};
List<String> userFromList = Arrays.asList(otherUserFromArray);
在使用 Arrays.asList()转化数组成为list的时候,生成了ArrayList, 表面上看是 java.util.ArrayList,
实际上是Arrays的内部类 ArrayList, 两个 ArrayList,都是继承 AbstractList,这他妈就是坑,不进去看源码仔细了解,
还以为是一个ArrayList,但是进去后才发现,Arrays的内部类ArrayList没有重写 AbstractList的add和remove方法,
再去看AbstractList的add和remove方法,居然是直接抛出异常 java.lang.UnsupportedOperationException,没有任何处理。
这就导致上面这种方法生成的Arrays的ArrayList使用add或者remove方法会直接抛出异常。
所以,在使用Arrays.asList()做转化的时候,如果要进行修改操作,就要再转化一次:
List<String> userFromList = new ArrayList<>(Arrays.asList(otherUserFromArray));
这样转化为 java.util.ArrayList ,就可以进行修改操作了。
好了,希望都不要被这家伙坑了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南