java.lang.UnsupportedOperationException

一、背景

记录一次小坑…

最近在写一个关于Excel导出的小需求,由于系统都有一些工具类,还有原来已经做好的导出,直接拿过来改了改就用了,没想到直接报错,尴尬。

还是那句话,别人都能用,我复制的,为啥就报错,离了个大谱啊。

关于Excel导出工具,可以参考:
JAVA导出Excel文件:https://blog.csdn.net/qq_38254635/article/details/126691175

二、处理问题

2.1 报错复现

测试demo代码,报错现场复现

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class Test {public static void main(String[] args) {System.out.println("方法一" + one().toString());System.out.println("方法二" + two().toString());}public static List<String> one(){List<String> list = new ArrayList<>();list.addAll(Arrays.asList("first", "second"));list.add("third");return list;}public static List<String> two(){List<String> list = Arrays.asList("first", "second");list.add("third");return list;}}

不得不说,不运行还真不一定能知道这代码会报错…

在这里插入图片描述

2.2 分析原因

1、先看一下没有报错的方法。

add方法,如下图:
在这里插入图片描述
额,这就很明显了,就是大家都说的,ArrayList的动态扩容,所以不会报错。

不清楚的,可以看一看这个:

ArrayList和LinkedList区别:https://blog.csdn.net/qq_38254635/article/details/121082607

2、再看一下报错的方法。

Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at Test.two(Test.java:23)at Test.main(Test.java:11)

点到 AbstractList 类的 108 行,可能还是点懵。

在这里插入图片描述

再看 AbstractList 类的 148 行,我*,无情啊。

在这里插入图片描述

好家伙,这直接给 throw new UnsupportedOperationException(); 这是不让改啊。

只记得动态扩容的好,却忘了这只是ArrayList重写带给我们的便利啊。

2.3 总结

反过来再看一下demo

List<String> list = Arrays.asList("first", "second");

其中得到的 list 并非我们经常所使用的 ArrayList

查看 Arrays.asList 不难发现,得到的是一个内部类,所以并没有对 add()、remove() 进行重写。

也可以从网上搜搜 UnsupportedOperationException 都会有详细的解释。

建议写一个demo,让他报错,然后点进去,看看源码,才能更深入的了解其真实原因。

OK,就这些吧。

有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产浪潮服务器:风扇免手动调节脚本

简介&#xff1a;浪潮集团&#xff0c;是中国本土顶尖的大型IT企业之一&#xff0c;中国领先的云计算、大数据服务商。浪潮集团旗下拥有浪潮信息、浪潮软件、浪潮国际&#xff0c;业务涵盖云计算、大数据、工业互联网等新一代信息技术产业领域&#xff0c;为全球120多个国家和地…

【人工智能】模糊推理

模糊推理:交叉的隶属函数&#xff0c;方法如模糊规则中推理方法一致&#xff0c;step3中的每一个格子都有所应的隶属关系函数 引言&#xff1a;“生活中的模糊关系”模糊集合模糊集合的定义模糊集合的表示法模糊集合表示法示例 隶属函数 模糊规则模糊计算的流程 引言&#xff1…

RT-DETR 目标过线计数

使用 Ultralytics RT-DETR 进行目标计数 🚀 实际应用场景 物流水产养殖使用 Ultralytics RT-DETR 进行传送带包裹计数使用 Ultralytics RT-DETR 在海中进行鱼类计数请使用最新代码(2023年12月8日后),旧版本不支持! 示例 “目标计数示例” 目标计数 from ultralytics

初识Redis缓存,一文掌握Redis重要知识文集。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

存储拆分后,如何解决唯一主键问题?

之前我们讲到了分库分表&#xff0c;现在考虑这样一个问题&#xff1a;在单库单表时&#xff0c;业务 ID 可以依赖数据库的自增主键实现&#xff0c;现在我们把存储拆分到了多处&#xff0c;如果还是用数据库的自增主键&#xff0c;势必会导致主键重复。 那么我们应该如何解决…

【算法】【动规】乘积为正数的最长子数组长度

跳转汇总链接 &#x1f449;&#x1f517;算法题汇总链接 1.1 乘积为正数的最长子数组长度 &#x1f517;题目链接 给你一个整数数组 nums &#xff0c;请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积…

docker镜像与容器的迁移

docker容器迁移有两组命令&#xff0c;分别是 save & load &#xff1a;操作的是images&#xff0c; 所以要先把容器commit成镜像export & import&#xff1a;直接操作容器 我们先主要看看他们的区别&#xff1a; 一 把容器打包为镜像再迁移到其他服务器 如把mysq…

RMQ算法总结

知识概览 RMQ又叫ST表、跳表&#xff0c;可以用来解决区间最值问题&#xff0c;这里这有查询没有修改。当然&#xff0c;这样的问题用线段树也是可以解决的。RMQ算法本质上是倍增动态规划&#xff0c;它的思想是先倍增预处理再查询。f(i, j)表示从i开始&#xff0c;长度是的区…

【Jeecg Boot 3 - 第二天】2.1、nginx 部署 JEECGBOOT VUE3

一、场景 二、实战 ▶ 2.1、打包&#xff08;build 前端&#xff09; &#xff1e; Stage 1&#xff1a;修改配置文件 .env.production&#xff08;作用&#xff1a;指向后端接口地址&#xff09; &#xff1e; Stage 2&#xff1a;点击build&#xff08;作用&#xff1…

虚幻学习笔记13—C++静态和动态加载

一、前言 我们在蓝图中可以很方便的添加各种需要的组件&#xff0c;那么在C代码中要如何实现呢。在代码中分静态和动态加载&#xff0c;而无论静态和动态&#xff0c;加载的内容有资源和资源类&#xff0c;资源类通常为带资源的蓝图类。 二、实现 在实现静态或动态加载时&…

生成式AI的力量,释放RPA的无限潜能

回首即将过去的2023年&#xff0c;互联网行业似乎始终处在各种新概念的热潮激荡之中。其中&#xff0c;最引人注目的话题无疑是AI科技。自人工智能技术实现大规模突破以来&#xff0c;我们见证了一系列生成式AI的涌现。从ChatGPT到百度文心一言&#xff0c;它们纷纷登场&#x…

Cellinx NVT 摄像机 GetFileContent.cgi任意文件读取漏洞 (CVE-2023-23063)

0x01 产品简介 Cellinx NVT IP PTZ是韩国Cellinx公司的一个摄像机设备。 0x02 漏洞概述 Cellinx NVT v1.0.6.002b版本存在安全漏洞&#xff0c;该漏洞源于存在本地文件泄露漏洞&#xff0c;攻击者可读取系统密码等敏感信息。 0x03 复现环境 FOFA&#xff1a;body"loc…

云仓酒庄带您品法国葡萄酒

说起葡萄酒肯定绕不开法国&#xff0c;法国葡萄酒闻名中外&#xff0c;口碑卓越。作为世界上的产酒大国&#xff0c;可以说是每一寸土地都可以种植葡萄。云仓酒庄的品牌雷盛红酒分享这么优秀的一个葡萄酒产酒国有哪些特点呢&#xff1f; 1.产区特色&#xff1a;波国有最著名的…

vue3 使用antd 报错Uncaught TypeError--【已解决】

问题现象 使用最基本的 ant-design-vue 按钮demo 都报错 报错文字如下 Uncaught TypeError: Cannot read properties of undefined (reading value)at ReactiveEffect.fn (ant-design-vue.js?v597f5366:6693:87)at ReactiveEffect.run (chunk-K2VKR2AM.js?v25c381c3:461:…

springboot发送邮件,内容使用thymeleaf模板引擎排版

springboot发送邮件,内容使用thymeleaf模板引擎排版 1、导入jar包2、yml设置3、收件人以及收件信息设置4、发邮件service5、模版页面6、controller 1、导入jar包 <!--发送邮件--><dependency><groupId>org.springframework.boot</groupId><artifac…

react经验7:高亮关键字

预期效果&#xff1a; 实现原理 将需要高亮的关键词做成正则表达式 new RegExp((${word}), "gi")使用上述正则表达式切割目标字符串 origin.split(new RegExp((${word}), "gi"))切割结果会包含正则匹配到的词 过滤掉空字符&#xff0c;并对关键词包裹…

人工智能与大数据的紧密联系

随着科技的飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;和大数据&#xff08;Big Data&#xff09;已成为当今社会的热门话题。人工智能在许多领域的应用越来越广泛&#xff0c;而大数据则提供了支持和驱动AI技术的巨大资源。本…

未来应用从何而来:认知力延伸、边界突破、回归云与产业

文 | 智能相对论 作者 | 沈浪 或许&#xff0c;谁也没想到未来应用来的如此之快&#xff0c;现如今传统应用从开发到体验&#xff0c;已经进入了一个前所未有的颠覆性改革阶段。 不久前&#xff0c;美国人工智能公司OpenAI举办开发者大会。在现场&#xff0c;公司创始人Sam …

BearPi Std 板从入门到放弃 - 先天神魂篇(6)(RT-Thread 按键中断响应)

简介 使用BearPi IOT Std开发板及主板自带两颗按键与用户灯, 实现按键触发中断控制灯亮灯灭 主板: 主芯片: STM32L431RCT6 LED : PC13 \ 推挽输出\ 高电平点亮 串口: Usart1 KEY1 : PB2 \ 上拉 \ 按下下降沿触发(一次)/上下沿触发(两次&#xff0c;实现按下开、松开关) KEY2 :…

FIFO的Verilog设计(三)——最小深度计算

文章目录 前言一、FIFO的最小深度写速度快于读速度写速度等于或慢于读速度 二、 举例说明1. FIFO写时钟为100MHz&#xff0c;读时钟为80Mhz情况一&#xff1a;一共需要传输2000个数据&#xff0c;求FIFO的最小深度情况二&#xff1a;100个时钟写入80个数据&#xff0c;1个时钟读…