java.lang.UnsupportedOperationException 原因以及解决方案
如下代码:
Map[] cardProds = JsonUtils.getObject(oldCartValue, new TypeReference<Map[]>(){});
List<Map> tempList = Arrays.asList(cardProds);
tempList.add(1, requestMap);
tempList.remove(0);
红色部分都会报 java.lang.UnsupportedOperationException 的错误,原因是 Arrays.asList(cardProds) 方法返回值的类型是 Arrays 类的内部类 java.util.Arrays.ArrayList<E>,这个 ArrayList 也继承自 java.util.AbstractList<E> 类,但是这个 ArrayList 并没有像 java.util.ArrayList<E> 类那样实现 java.util.AbstractList<E> 类的public void add(int index, E element) 、 public E remove(int index) 这两个方法,当使用 Arrays.asList(cardProds) 返回的 java.util.Arrays.ArrayList<E> 类的这两个方法时会直接调用 java.util.AbstractList<E> 类对应的两个方法。
而通过查看 java.util.AbstractList<E> 类的这两个方法发现,这两个方法都直接抛出了 UnsupportedOperationException() 的异常,没有做任何其他的事,也就意味着想要调用这两个方法,必须通过子类重写这两个方法才能完成调用。

图:java.util.AbstractList<E> 类的public void add(int index, E element) 、 public E remove(int index) 这两个方法的源码
参考:
https://blog.csdn.net/Tracycater/article/details/77592472
java.lang.UnsupportedOperationException 原因以及解决方案的更多相关文章
- java.lang.UnsupportedOperationException
在运行路况预测这个项目时,报错出现:java.lang.UnsupportedOperationException 原因:我将1.3版本和1.6版本的两个jar包都Add to Build Path ...
- MyBaties 异常之 java.lang.UnsupportedOperationException
sql语句 对应的接口为: 包错误的详情为: java.lang.UnsupportedOperationException 原因: resultType返回的是集合中的元素类型,而不是集合本身 SQ ...
- Android -- Canvas java.lang.UnsupportedOperationException
干货 java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:2 ...
- java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12
最近使用Android Studio开发一个新项目,刚做完几个界面,跑在android 5.0上面很正常,因为都是挺简单的布局,本以为应该不存在兼容性问题(Flag啊). 偶然用了一个4.x的实机测试 ...
- java.lang.UnsupportedOperationException: Not supported by BasicDataSource
场景: SpringMVC+Hibernate+Maven 问题: 在src/main/resources 目录中添加hibernate.properties文件, 则如果存在这句hibernate. ...
- mybatis java.lang.UnsupportedOperationException
mybatis抛出下面的异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exc ...
- java 异常java.lang.UnsupportedOperationException
在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常: 常见集合如下: private List<VacationC ...
- android 4.0 中出错 java.lang.UnsupportedOperationException
在android4.0中 画图的时候使用: canvas.clipPath(path, Region.Op.XOR); 报错 java.lang.UnsupportedOperationExcept ...
- 使用Arrays.asList抛出java.lang.UnsupportedOperationException
使用 Arrays.asList("str1", "str2")生成的List,不能进行remove.add操作,会产生异常java.lang.Unsuppor ...
随机推荐
- 你会用setTimeout吗
定义很简单 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 广泛应用场景 定时器,轮播图,动画效果,自动滚动等等 上面一些应该是setTimeout在大家心中的样子,因为我们 ...
- 导出CSV
public FileResult ExportExcel() { var sbHtml = new StringBuilder(); sbHtml.Append("<table bo ...
- 微信小程序可用的第三方库
1.wxDraw 轻量的小程序canvas动画库,专门用于处理小程序上canvas 的图形创建.图形动画,以及交互问题. 链接:http://project.ueflat.xyz/#/ 2.ZanUi ...
- jq学习总结之方法
三.方法 1.length 2.index()3.get() reverse()4.not()5.filter()6.find()7.each()8.addBack()9.attr()10.toggl ...
- c#-day03学习笔记
循环语句 一共有三种 1: For循环 2: while 循环 3: do while 循环 //1 //2 //4 For循环 语法 f ...
- IIS设置问题
1.解决IIS7.5中部署WCF时,访问.svc文件的404错误问题 如果你直接在IIS 7中配置WCF,访问.svc文件时会出现404错误.解决方法,以管理员身份进入命令行模式,运行:" ...
- web子项目的路径问题
http://baidu.com/userms/ userms是一个子应用程序,项目中使用的路径 /content/css/.. 从http://baidu.com/ 开始 ~/content/ ...
- Windbg工具使用
https://www.cnblogs.com/startpoint/p/4194052.html https://www.cnblogs.com/lyl6796910/p/7613664.html ...
- idea 插件描述(转)
提供些idea插件的干货.干货.干货! 如何安装idea plug,方法如下图:如果安装不了考虑下是否代理问题: 1,maven helper 以前查看maven依赖都比较麻烦,需要用命令maven ...
- ansible的安装及命令相关模块
ansible 第一步:下载epel源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos- ...