java 报错 unsupported_java: Arrays.ArrayList.add 报错java.lang.UnsupportedOperationException-Go语言中文社区...

本文探讨了在Java中使用Arrays.asList()方法初始化List时的常见误区,特别是将其与java.util.ArrayList混淆导致的问题,例如尝试调用不支持的方法时会抛出UnsupportedOperationException异常。

环境:jdk1.8

在Java中,使用java.util.ArrayList类时,由于java.util.ArrayList的构造器没法传入数组或者list进行初始化,所以我们常用Arrays.asList()方法来进行List的初始化和测试。使用Arrays.asList()初始化后,但在后续的使用中按照ArrayList的方法去操作经常会遇到很多坑。。。

如下代码:

public static void main(String[] args) {

List myList = Arrays.asList(1, 2, 3, 4);

myList.add(5);

System.out.println(myList.size());

}

执行时报错:

Exception in thread "main" java.lang.UnsupportedOperationException

at java.util.AbstractList.add(AbstractList.java:148)

at java.util.AbstractList.add(AbstractList.java:108)

at com.dmp.TestJavaList.main(TestJavaList.java:9)

具体分析如下:

Arrays.asList()方法返回的对象是 java.util.Arrays.ArrayList, 这个对象和java.util.ArrayList在一些api的使用上是有一些差异的。

这里遇到的问题就是add,addAll方法的问题

java.util.ArrayList的add方法, 实现了接口java.util.Collection的add方法

a0d682d57b080b801e25263b65f7d99e.png

而java.util.Arrays.ArrayList的add方法,使用的是基类java.util.AbstractList的方法,

43cfad34737234306b94801f07b75d65.png

在用的时候一定会抛出异常啦。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值