首页 > 其他分享 >UnsupportedOperationException------“不支持的操作异常”

UnsupportedOperationException------“不支持的操作异常”

时间:2024-02-01 15:44:37浏览次数:31  
标签:UnsupportedOperationException java Arrays list add ------ AbstractList 异常

在Java编程语言中,当你试图调用一个当前环境或对象不支持的方法时,就会抛出这个异常。例如:

  1. 调用不可变集合(如通过Collections.unmodifiableList()创建的列表)的添加、删除或修改方法。
  2. 使用Arrays.asList()返回的对象尝试修改其内容。
  3. 在实现了某个接口但未提供所有必需实现方法的类上调用那些未实现的方法。
  4. 当你在使用一些设计为只读或特定条件下不支持修改操作的API时。

总之,当程序中执行了一个在运行时被明确标记为不支持或未实现的操作时,Java虚拟机将会抛出java.lang.UnsupportedOperationException,提醒开发者该操作在此上下文中是不允许的。

点击查看代码
package com.itheima.javase;

import java.util.Arrays;
import java.util.List;

public class A5 {
    public static void main(String[] args) {
        List<Integer> list= Arrays.asList(1,0,2,4);


        System.out.println(list);

        System.out.println(list.size());

        System.out.println(list.get(0));

        System.out.println(list.contains(0));

        list.add(2048);

        System.out.println(list);
    }
}

[1, 0, 2, 4]
Exception in thread "main" java.lang.UnsupportedOperationException
4
	at java.util.AbstractList.add(AbstractList.java:148)
1
	at java.util.AbstractList.add(AbstractList.java:108)
true
	at com.itheima.javase.A5.main(A5.java:19)

Process finished with exit code 1

在Java中,当我使用Arrays.asList()方法创建一个列表时,它返回的是一个固定大小的列表,具体类型是java.util.Arrays$ArrayList。这个类继承自AbstractList,并且不支持添加或删除元素,也就是说它是一个不可变列表。

当我尝试执行list.add(2048)操作时,由于这个特殊的ArrayList实现不支持添加元素(即不覆盖了父类AbstractList中的add方法),所以会抛出UnsupportedOperationException异常,为了能够添加元素到列表中,请考虑使用常规的ArrayList或LinkedList等可变集合类来替代Arrays.asList()创建的不可变列表。例如:List list = new ArrayList<>(Arrays.asList(1, 0, 2, 4));

标签:UnsupportedOperationException,java,Arrays,list,add,------,AbstractList,异常
From: https://www.cnblogs.com/itcq1024/p/18001410

相关文章

  • EasyExcel 读取单元格内图片
    EasyExcel读取单元格内图片1.需求介绍需要实现Excel数据批量导入,且Excel中某个单元格内存在图片,需要将图片解析上传,并与所在行数据进行绑定,具体数据如:2.具体实现2.1版本介绍easyexcel:3.3.2SpringBoot:2.7.1hutool:5.7.212.2解决思路参考hutoolExcelPicUtil工具类,通......
  • 如何将PyTorch模型迁移到昇腾平台
    https://bbs.huaweicloud.com/blogs/399602?utm_source=cnblog&utm_medium=bbs-ex&utm_campaign=other&utm_content=content如何将PyTorch模型迁移到昇腾平台举报 昇腾CANN 发表于2023/04/1809:54:50  5k+  0  1 【摘要】本文介绍将PyTorch网络模型迁移到昇......
  • 莫比乌斯反演
    莫比乌斯反演补了补暑假欠下的账(你怎么寒假才学)推狮子>>写代码。数论函数:定义域为正整数的函数。积性函数,对于一个数论函数,任意两个互质的正整数\(x,y\),都有\(f(xy)=f(x)f(y)\)完全积性函数就是不要求\(x,y\)互质的积性函数。常见的积性函数:单位函数\(\epsilon(n)......
  • 【学习笔记】二分图匹配 匈牙利(NTR)算法
    时间复杂度显然,这个算法的时间复杂度是O(一边的点数*边数)因为最坏情况就是每一个点都要把所有的边问一遍能不能匹配显然,常数极小另外可以留意一下数据范围,因为如果是稠密图(\(n=500m=2e5\)这种)就可以考虑邻接矩阵存图,方便判重边S准备以下是跑Ntr算法要用的一些东西如果题......
  • 跑通的第一个ethers.js程序HelloVitalik.js
    简介ethers.js是一个本地库,可以让你调用接口,用官方写好的轮子来使用一些常用的函数!学习完这个库,你对node.js就有比较深入的了解了,如果你不做项目,就不涉及智能合约的编写,那么写点脚本学习一下ethers.js是很好的。教程已经有比较完整系统的了:https://www.wtf.academy/ethers-101/H......
  • Nginx-反向代理详解
    什么是NginxNginx是一个高性能的开源Web服务器和反向代理服务器。它具有轻量级、高并发、低内存消耗等特点,被广泛用于搭建静态资源服务器、负载均衡、反向代理等场景。本文介绍nginx的反向代理,其他内容敬请期待!什么是反向代理反向代理是一种代理服务器的配置模式,它代表服务器向......
  • (硬核中的硬核)链路追踪落地过程中的挑战与解决方案
    ......
  • Prometheus部署+Alertmanager邮件告警
    选型我们单位自己开发的软件平台,需要自己来运维,正所谓不监控无运维,等着甲方来通知你服务挂了是一件很尴尬的事情。在软件选型方面,监控工具简直是太多了,每个软件都有自己的领地,有的是偏向跟踪分析、有的是报警的、有的是日志收集、有的只监控硬件。Prometheus、Nagios、Datadog......
  • nvm安装Nodejs时报错,Could not retrieve https://npm.taobao.org/mirrors/node/latest
    1.首先要使用管理员运行命令2.在安装nvm的目录下找到settings.txt,没有就手动增加一个node_mirror:https://npm.taobao.org/mirrors/node/npm_mirror:https://npm.taobao.org/mirrors/npm/这个地方有点奇怪,安装18的时候把上面的Https://去掉以后就下载成功了3.安装19以及......
  • 判断域名dns是否被劫持或污染
    nslookup域名144.223.234.234,即可判断该域名是否被污染,由于144.223.234.234不存在,理应没有任何返回。但我们却得到了一个错误的IP(不确定)。即可证明这个域名已经被DNS污染了解决方案播报编辑1、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。2、修改host......