java.lang.UnsupportedOperationException解决方法

news/2025/1/16 5:57:57/

java.lang.UnsupportedOperationException解决方法

  • 先放错误信息
  • 业务场景
  • 报错分析
    • 先看报错代码位置
      • 进入源码查看
      • 至此 真相大白
  • 解决方法
  • 总结

先放错误信息

在这里插入图片描述

业务场景

已知有学生 张三李四王五赵六 等人
private List<String> nameList = Arrays.asList("张三", "李四", "王五", "赵六");
现有一名考生 如考试分数大于等于80分 即编入该班级
if (score >= 80) { nameList.add("七七"); }

报错分析

先看报错代码位置

在类 MainActivity 中的第32行代码,OK,咱们进入源码查看
在这里插入图片描述

进入源码查看

先看 Arrays.asList 方法,可以看到这里返回值是new了一个 ArrayList ,但此 ArrayList 是Arrays类本身的内部类,通过查找发现此类中并没有add方法,那么咱们可以看到此 ArrayList 类继承了 AbstractList ,咱们进入 AbstractList 类查看即可找到原因
在这里插入图片描述

通过查找发现此类中并没有add方法
在这里插入图片描述

进入 AbstractList 类查看,可以看到该方法会抛此异常
在这里插入图片描述

至此 真相大白

此时咱们进入 ArrayList 源码中查看,可以看出是重写了add方法,至此 真相大白
在这里插入图片描述

解决方法

既然已知原因,只需类型转换即可
private List<String> nameList = new ArrayList<>(Arrays.asList("张三","李四","王五","赵六"));
在这里插入图片描述

总结

  • 在使用 Arrays.asList() 方法生成的 List 中的 add()、remove() 等方法时运行报异常,这是由于 Arrays.asList() 返回的是 Arrays 本身的内部ArrayList类,而不是 java.util.ArrayList 类。
  • Arrays 的内部类 ArrayList 和 java.util.ArrayList 虽然都是继承 AbstractList,但 java.util.ArrayList 重写了这些方法而 Arrays 的内部ArrayList 类没有重写这些方法,所以会抛出异常。

http://www.ppmy.cn/news/1056026.html

相关文章

Java——一个简单的数学题目生成和回答的程序

这段代码是一个简单的数学题目生成和回答的程序。具体分析如下&#xff1a; 导入必要的类&#xff1a; import java.io.*; import java.util.Random;代码中导入了用于输入输出的 java.io 包和生成随机数的 java.util.Random 类。这些类将在后面的代码中使用到。 定义主类和主方…

python编程中fft的优缺点,以及如何使用cuda编程,cuda并行运算,信号处理(推荐)

A.python中cuda编程的库主要有: cupy、pycuda 1,区别如下: 支持的GPU平台: PyCUDA:PyCUDA是一个用于在Python中编写CUDA代码的库。它支持NVIDIA的CUDA平台,并提供了与CUDA C/C++接口相似的功能。因此,PyCUDA主要用于与NVIDIA GPU交互的应用。 CuPy:CuPy是一个用于在P…

开源跨境电商ERP中的7个重要功能点分析

作为开源跨境电商ERP领域的专家&#xff0c;我将为你详细分析关键的功能点&#xff0c;帮助你理解和应用开源跨境电商ERP系统&#xff0c;为你的业务带来突破性的变革。无论你是个体创业者、中小企业主&#xff0c;还是跨国电商巨头&#xff0c;这些功能点将为你的业务流程优化…

Go语言规范:高质量编程及编码规范

一、简介 高质量编程是指以高标准和良好实践来编写可读、可维护、可测试和性能等方面的优秀表现的代码。 各种边界条件是否考虑完备异常情况处理、稳定性保证易读易维护 &#xff08;一&#xff09;编码原则 从指令的角度考虑&#xff0c;开发中应如何编码&#xff0c;才能减…

记录解决IOS滚动跳转不生效问题

目录 背景 &#xff1a; 解决过程 &#xff1a; 解决方案 &#xff1a; 最终代码 &#xff1a; 背景 &#xff1a; 项目类似于问卷星里面的问卷调查&#xff0c;当你点击提交按钮时&#xff0c; 页面会有弹窗提醒你有哪些题型没回答&#xff0c;点击确认之后&#xff0c; 页…

战略是通过分析战领一个位置

战略定位派&#xff1a;战略形成是一个分析过程【安志强趣讲266期】 趣讲大白话&#xff1a;占个有利位置 **************************** 定位通俗讲就是占个有利位置 企业界“心智定位”和“战略定位”吵得很凶 定位这个词最先由特劳特提出&#xff0c;营销要占领消费者的心智…

成功解决修改已经push到远程git仓库的commit message

1.使用 Git 命令行进入要修改的项目目录。 2.运行 git log 命令查看提交历史&#xff0c;找到要修改的提交的哈希值&#xff08;commit hash&#xff09;。 3.运行 git rebase -i <commit hash> 命令&#xff0c;将 <commit hash> 替换为要修改的提交的哈希值。这将…

75装饰器

装饰器 简介&#xff08;新语法&#xff09;[装饰器 API&#xff08;新语法&#xff09;](https://es6.ruanyifeng.com/#docs/decorator#装饰器 API&#xff08;新语法&#xff09;)类的装饰类装饰器&#xff08;新语法&#xff09;方法装饰器&#xff08;新语法&#xff09;方…