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));
相关推荐
keke1021 分钟前
Java【14_2】接口(Comparable和Comparator)、内部类
java·开发语言
CN.LG31 分钟前
Java 乘号来重复字符串的功能
java·开发语言
萌新下岸多多关照36 分钟前
Java中synchronized 关键字
java·开发语言
中国lanwp38 分钟前
使用Maven部署WebLogic应用
java·maven
开开心心就好1 小时前
Word图片格式调整与转换工具
java·javascript·spring·eclipse·pdf·word·excel
CGG921 小时前
【单例模式】
android·java·单例模式
苦学编程的谢1 小时前
多线程代码案例-1 单例模式
java·开发语言·单例模式
yaoxin5211231 小时前
80. Java 枚举类 - 使用枚举实现单例模式
java·开发语言·单例模式
夏季疯2 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习
卡戎-caryon2 小时前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程