如下代码:

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 原因以及解决方案的更多相关文章

  1. java.lang.UnsupportedOperationException

    在运行路况预测这个项目时,报错出现:java.lang.UnsupportedOperationException 原因:我将1.3版本和1.6版本的两个jar包都Add to Build Path ...

  2. MyBaties 异常之 java.lang.UnsupportedOperationException

    sql语句 对应的接口为: 包错误的详情为: java.lang.UnsupportedOperationException 原因: resultType返回的是集合中的元素类型,而不是集合本身 SQ ...

  3. Android -- Canvas java.lang.UnsupportedOperationException

    干货 java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:2 ...

  4. java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12

    最近使用Android Studio开发一个新项目,刚做完几个界面,跑在android 5.0上面很正常,因为都是挺简单的布局,本以为应该不存在兼容性问题(Flag啊). 偶然用了一个4.x的实机测试 ...

  5. java.lang.UnsupportedOperationException: Not supported by BasicDataSource

    场景: SpringMVC+Hibernate+Maven 问题: 在src/main/resources 目录中添加hibernate.properties文件, 则如果存在这句hibernate. ...

  6. mybatis java.lang.UnsupportedOperationException

    mybatis抛出下面的异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exc ...

  7. java 异常java.lang.UnsupportedOperationException

    在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常: 常见集合如下: private List<VacationC ...

  8. android 4.0 中出错 java.lang.UnsupportedOperationException

    在android4.0中  画图的时候使用: canvas.clipPath(path, Region.Op.XOR); 报错 java.lang.UnsupportedOperationExcept ...

  9. 使用Arrays.asList抛出java.lang.UnsupportedOperationException

    使用 Arrays.asList("str1", "str2")生成的List,不能进行remove.add操作,会产生异常java.lang.Unsuppor ...

随机推荐

  1. Spring boot-(3) Spring Boot特性2

    1. 外部配置 Spring Boot支持外部配置,以便可以在不同的环境中使用相同的应用程序代码.可以使用properties文件,YAML文件,环境变量或命令行参数进行外部配置.可以使用@Value ...

  2. asp.net 翻页时用ViewState保存上一页checkbox勾选的值

    /// <summary>        /// checkbox勾选取消勾选事件        /// </summary>        /// <param nam ...

  3. Ubuntu 16.10 安装mysql

    打开终端 sudo apt update 完成后 sudo apt install mysql-server 中间会提示设置root 账户的密码 有的文章提到 还要 install mysql-cli ...

  4. form中的action与<url-pattern>的理解

    一.<form action="Test/Login" method="post"> 在action中有两种表示方式: 1."/Test/ ...

  5. Java集合集锦

    1.介绍Collection框架的结构 集合是Java中的一个非常重要的一个知识点,主要分为List.Set.Map.Queue三大数据结构.它们在Java中的结构关系如下: Collection接口 ...

  6. 2.eclipse安装

    1.进入官网https://www.eclipse.org/ 2.配置工作目录:存放 1.项目代码    2.IDE相关配置信息 3.没有配置tomcat,所以为空.

  7. 1.jdk的安装

    1.下载jdk放到某(E)盘底下的(java)某文件夹里 2.配置环境变量 (1)配置JAVA_HOME,CLASSPATH,PATH三个变量 其中JAVA_HOME必须的 JAVA_HOME=E:\ ...

  8. 花3分钟了解下C/C++中的函数可变参简单实现

    1.可变参函数的原理 C/C++函数的参数是存放在栈区的,并且参数的入栈是从参数的右边开始,即最后一个参数先入栈,而第一个参数最后才入栈,所以,根据栈的后进先出性质,函数总能找到第一个参数.所以,可变 ...

  9. 二维码生成的WEB api方法

    /// <summary> /// 获取二维码 /// </summary> /// <param name="size">编码测量度,值越大生 ...

  10. RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x

    PS:如果既想获得 RHEL 的高质量.高性能.高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 FedoraProject 推出的 EPEL(Extra Packages for Ent ...