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));
相关推荐
S***26752 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
马剑威(威哥爱编程)3 小时前
鸿蒙6开发视频播放器的屏幕方向适配问题
java·音视频·harmonyos
JIngJaneIL3 小时前
社区互助|社区交易|基于springboot+vue的社区互助交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·社区互助
V***u4533 小时前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言
这是程序猿3 小时前
基于java的ssm框架旅游在线平台
java·开发语言·spring boot·spring·旅游·旅游在线平台
i***t9194 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
k***08294 小时前
【监控】spring actuator源码速读
java·spring boot·spring
麦麦鸡腿堡4 小时前
Java_网络编程_InetAddress类与Socket类
java·服务器·网络
vx_dmxq2114 小时前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php
5***g2984 小时前
新手如何快速搭建一个Springboot项目
java·spring boot·后端