Java教程

java.lang.UnsupportedOperationException处理办法

本文主要是介绍java.lang.UnsupportedOperationException处理办法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、背景

对list进行操作时,抛出异常java.lang.UnsupportedOperationException

 

二、原因

2.1 通过数组转集合时,Arrays.asList()生成的List是Arrays内部类ArrayList(Arrays$ArrayList),不是java.util.ArrayList;

 

2.2 Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法都是父类AbstractList中的方法,remove、add等方法在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。

 

2.3 java.util.ArrayList重写这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。

同样的Addall,removeAll因为调用了add,remove方法一样抛这个异常。

 

三、解决方案

3.1 通过新建一个java.util.ArrayList

 

3.2 通过stream流操作转java.util.ArrayList

 

这篇关于java.lang.UnsupportedOperationException处理办法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!