java.lang.UnsupportedOperationException解决方法
来源:互联网 发布:评价莫言诺贝尔 知乎 编辑:程序博客网 时间:2024/06/08 10:49
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。
代码块:
public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}; List<String> list = Arrays.asList(array); list.add("6"); }}
执行结果:
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.atguigu.test.ListTest.main(ListTest.java:11) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
发生问题的原因如下:
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。解决方法如下:
public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}; List<String> list = Arrays.asList(array); List arrList = new ArrayList(list); arrList.add("6"); }}
阅读全文
0 0
- java.lang.UnsupportedOperationException解决方法
- java.lang.UnsupportedOperationException翻译
- java.lang.UnsupportedOperationException:错误
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException: createRequestComponentDeployer
- java.lang.UnsupportedOperationException异常
- 【转】java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException异常
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException 解决方案
- java.lang.UnsupportedOperationException
- 异常java.lang.UnsupportedOperationException
- 数据存储 SharedPreference~properties
- 编写一个java程序,从1加到100,每做一次加法,就休眠1秒,当程序运行过程中,杀死这个程序。 再次运行,还能从上次的计算结果继续下去
- GNU/Linux-MariaDB
- HTML页面与基本标记
- 虚拟币开发专题(区块链技术中山寨币核心是什么?)
- java.lang.UnsupportedOperationException解决方法
- python中类的全面分析
- 1867: [Noi1999]钉子和小球
- Linux系统时间与互联网同步
- 写给我自己(2)
- Ningx集群环境搭建
- 复习Redux
- win10找回旧版Windows照片查看器解决方案
- 文件读写:fwrite与fprintf的区别(即二进制方式和文本方式的区别)