List使用addAll()方法报错

当使用Arrays.asList方式创建出来的list,在使用addAll方法的时候报错如下:

Exception in thread "main" java.lang.UnsupportedOperationException

这个问题记录下,以防以后忘记。

下面是代码

java 复制代码
        List<String> objects = new ArrayList<>();
        objects.add("cc");
        objects.add("dd");

        List<String> list = Arrays.asList("aa", "bb");
        list.addAll(objects);

从代码上来看,这个方法应该是没有问题的,可是使用addAll缺报错了,看了下源码

这么看没错啊,new了一个ArrayList<>返回了,但是点开以后发现,这特么

创建的并不是ArrayList,而是Arrays的一个内部类,这个内部类实现了AbstractList,也里数据List系列的,但是有个问题,调用addAll的方法的时候,发现Arrays的内部类并没有重写addAll方法,所以直接就调用了父类中的addAll方法,AbstractList类中也没有符合条件的方法,只能继续调用父类的方法,AbstractCollection这个类中有符合条件的方法

这样就调用了add方法

特么的这个方法返回了一个异常,这就是为啥在Arrays.asList得到的List不能使用addAll的原因,怎么解决呢

经过苦思冥想,用了很多工具很多转换,最终选择了一个终极的解决方式

是的,你没有看错,就是在外面套一个new ArrayList

相关推荐
liuyuzhongcc1 小时前
List 接口中的 sort 和 forEach 方法
java·数据结构·python·list
菜鸟单飞2 小时前
介绍一款非常实用的PDF阅读软件!
windows·pdf·电脑
计算机小白一个2 小时前
蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
java·数据结构·蓝桥杯
卑微的小鬼3 小时前
数据库使用B+树的原因
数据结构·b树
cookies_s_s3 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
醉城夜风~5 小时前
[数据结构]双链表详解
数据结构
gyeolhada5 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
阿巴~阿巴~5 小时前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先
流星白龙6 小时前
【Linux】35.封装 UdpSocket(2)
linux·运维·windows
waicsdn_haha6 小时前
Visual Studio Code 2025 安装与高效配置教程
c语言·ide·windows·vscode·微软·编辑器·win7