解决:Exception in thread “main“ java.lang.UnsupportedOperationException

Java异常处理:UnsupportedOperationException解决方案

BUG复现

原因分析

使用List.of()、Collections.singletonList()构造出的List都是不可变(immutable)的。如果非要往里加入元素,就会抛出UnsupportedOperationException。

immutable特性在List.of()、Collections.singletonList()方法源码注释也有说明:

 

解决方案

1. 使用支持动态添加的列表

将不可变列表转换为 ArrayList 等支持动态修改的列表类型:

// 不可变列表
List<String> originalList = Arrays.asList("item1", "item2");

// 修改为创建可变列表
List<String> mutableList = new ArrayList<>(originalList);

// 现在可以安全添加元素
mutableList.add("newItem");
2. 直接初始化可变列表

如果列表一开始就需要动态修改,直接使用 ArrayList 初始化:

// 直接创建可变列表
List<String> list = new ArrayList<>();
list.add("item1");
list.add("item2");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值