java.lang.UnsupportedOperationException异常处理

news/2024/5/19 22:04:12

这个异常遇到了才知道坑这么大,坑爹的方法。

private String[] otherUserFromArray = new String[]{“3”, “4”, “发放”};
List<String> userFromList = Arrays.asList(otherUserFromArray);

在使用 Arrays.asList()转化数组成为list的时候,生成了ArrayList, 表面上看是 java.util.ArrayList,实际上是Arrays的内部类ArrayList, 两个ArrayList,都是继承 AbstractList,这他妈就是坑,不进去看源码仔细了解,还以为是一个ArrayList,但是进去后才发现,Arrays的内部类ArrayList没有重写 AbstractList的add和remove方法,再去看AbstractList的add和remove方法,居然是直接抛出异常 java.lang.UnsupportedOperationException,没有任何处理。这就导致上面这种方法生成的Arrays的ArrayList使用add或者remove方法会直接抛出异常。

所以,在使用Arrays.asList()做转化的时候,如果要进行修改操作,就要再转化一次:

List<String> userFromList = new ArrayList<>(Arrays.asList(otherUserFromArray));

这样转化为 java.util.ArrayList ,就可以进行修改操作了。

好了,希望都不要被这家伙坑了。


http://www.niftyadmin.cn/n/543253.html

相关文章

软工网络15个人作业2

16章 创新 问题一 “创新的迷思&#xff1a;最近几年&#xff0c;我们整个社会似乎对创新都很感兴趣&#xff0c;媒体上充斥着各种创新类的人才&#xff0c;创新型的学校&#xff0c;创新型的公司&#xff0c;城市&#xff0c;社会等名词” 通过阅读这些&#xff0c;“创新”…

竞价广告系统-流量预测

流量预测 在前面合约式广告中提到过合约式广告中有三个基本技术&#xff0c;1. 受众定向&#xff0c;2. 点击预测&#xff0c;3. 流量预测。在这三个技术基础上才可以做Online Allocation&#xff0c;本节主要介绍流量预测。 在定向条件分的比较粗的情况下&#xff0c;流量预测…

十分钟理解Gradle

一、什么是Gradle 简单的说&#xff0c;Gradle是一个构建工具&#xff0c;它是用来帮助我们构建app的&#xff0c;构建包括编译、打包等过程。我们可以为Gradle指定构建规则&#xff0c;然后它就会根据我们的“命令”自动为我们构建app。Android Studio中默认就使用Gradle来完…

eclipse debug configurations arguments指定文件路径参数

1 eclipse debug configurations arguments指定文件路径参数 使用绝对路径&#xff0c;但是这个文件必须要放在该project的源码路径的外面才行&#xff0c;否则eclipse不认这个文件。 比如project的路径是/Users/xxxx/myworks/helloworld_project &#xff0c;那么作为参数的文…

ASP.NET MVC基础入门.

一&#xff1a;ASP.NET MVC 简介 1&#xff1a;asp.net mvc 是一种构建web应用程序的框架&#xff0c;他将一般的MVC&#xff08;Model--View--Controller&#xff09;模式应用于asp.net框架。 2&#xff1a;asp.net MVC 和 asp.net 框架之间的关系&#xff1a; asp.net 框架分…

体系,系统

2019独角兽企业重金招聘Python工程师标准>>> 任何专家或者高手&#xff0c;关于某一项技能或者认知&#xff0c;都要建立自己的一套体系&#xff0c;而不能仅仅是碎片化的知识&#xff0c;没有体系不成高手&#xff01; 转载于:https://my.oschina.net/u/3262302/bl…

Java知多少(109)数据库更新

数据库更新操作包括数据表创建、删除、以及数据表记录的增加、删除、修改等操作。如果利用数据 SQL命令实现&#xff0c;则利用Statement对旬的executeUpdate()方法&#xff0c;执行SQL的update语句&#xff0c;实现数据表的修改&#xff1b;执行SQL的insert语句&#xff0c;实…

C++学习之路(三):volatile关键字

volatile是c中的一个关键字。用volatile修饰的变量&#xff0c;具有三个性质&#xff1a;易变性 &#xff08;一&#xff09;易变性&#xff1a; 由于编译器对代码执行的优化&#xff0c;两条赋值语句&#xff0c;下一条语句可能会直接从上一条语句使用的寄存器中取得变量内容&…