Arrays.asList()方法的大坑

踩坑

今天在开发过程中使用Arrays.asList()方法将数组转化为List,之后对List进行了remove操作,结果项目一直疯狂报错:class java.util.Arrays A r r a y L i s t c a n n o t b e c a s t t o c l a s s j a v a . u t i l . A r r a y L i s t ( j a v a . u t i l . A r r a y s ArrayList cannot be cast to class java.util.ArrayList (java.util.Arrays ArrayListcannotbecasttoclassjava.util.ArrayList(java.util.ArraysArrayList and java.util.ArrayList are in module java.base of loader 'bootstrap')


原因分析

Arrays.asList() 方法是 Java 中用于将数组转换为 List 的方法。但是Arrays.asList() 返回的 List 并不是 java.util.ArrayList 对象,而是 Arrays 类的内部类 ArrayList 的对象。

这个内部类 ArrayList 继承自 AbstractList,它是 Arrays 类的一个私有静态类。Arrays.ArrayList 类并没有实现一些 ArrayList 的修改操作,因此它的大小是固定的,并且不支持增删改操作。尝试在其上执行这些操作会抛出 UnsupportedOperationException。


解决方案

java 复制代码
// 使用ArrayList构造器创建一个新的ArrayList对象
List<String> list = new ArrayList<>(Arrays.asList(array));
相关推荐
zjttsh16 分钟前
Linux下安装Redis
java
TimberWill40 分钟前
SpringBoot整合Srping Security实现权限控制
java·spring boot·后端
Renhao-Wan2 小时前
Java 算法实践(四):链表核心题型
java·数据结构·算法·链表
_codemonster3 小时前
JavaWeb开发系列(六)JSP基础
java·开发语言
万邦科技Lafite3 小时前
淘宝店铺所有商品API接口实战指南
java·数据库·mysql
jjjxxxhhh1233 小时前
【加密】-AES与对称加密
java·服务器·网络
临水逸3 小时前
飞牛fnos 2025 漏洞Java跨域URL浏览器
java·开发语言·安全·web安全
yaoxin5211233 小时前
324. Java Stream API - 实现 Collector 接口:自定义你的流式收集器
java·windows·python
H Corey3 小时前
数据结构与算法:高效编程的核心
java·开发语言·数据结构·算法
米羊1214 小时前
Struts 2 漏洞(上)
java·后端·struts