当前位置: 首页 > news >正文

java List报错Method threw ‘java.lang.UnsupportedOperationException‘ exception. 解决

问题描述:

List使用Arrays.asList()初始化后,再add对象时报错

Method threw 'java.lang.UnsupportedOperationException' exception.

错误示例如下:

List<ExportListVO.ExportSheet> sheetVOList = Arrays.asList(new ExportListVO.ExportSheet("导出合价",0L,1),new ExportListVO.ExportSheet("导出工料机",0L,2),new ExportListVO.ExportSheet("导出造价经济指标",0L,3));
for (TbProjectStructure iVO : structureList) {ExportListVO.ExportSheet sheetVO = new ExportListVO.ExportSheet();sheetVO.setId(iVO.getProjectId());sheetVO.setName(iVO.getName() + "-造价汇总");sheetVO.setSheetType(5);sheetVOList.add(sheetVO);
}
sheetVOList.add(new ExportListVO.ExportSheet("导出分类经济指标",0L,4));
projectVo.setSheetList(sheetVOList);
newList.add(projectVo);

问题

以上代码第10行执行时add报错;

原因

Arrays.asList()返回的 List<> 与 new ArrayList<>() 不是一个类型,缺少泛型结构;

new ArrayList<>()底层是重写了 Arrays.asList();

因此,集合的方法在 Arrays.asList() 里是没有的。


正确示例如下:

List<ExportListVO.ExportSheet> sheetVOList = new ArrayList<>(Arrays.asList(new ExportListVO.ExportSheet("导出合价",0L,1),new ExportListVO.ExportSheet("导出工料机",0L,2),new ExportListVO.ExportSheet("导出造价经济指标",0L,3)));
for (TbProjectStructure iVO : structureList) {ExportListVO.ExportSheet sheetVO = new ExportListVO.ExportSheet();sheetVO.setId(iVO.getProjectId());sheetVO.setName(iVO.getName() + "-造价汇总");sheetVO.setSheetType(5);sheetVOList.add(sheetVO);
}
sheetVOList.add(new ExportListVO.ExportSheet("导出分类经济指标",0L,4));
projectVo.setSheetList(sheetVOList);
newList.add(projectVo);

解决办法:

1.办法很简单,再套一层即可,如下:

new ArrayList<>(Arrays.asList());

2.深拷贝 ArrayList,如下:

Lits<String>list = new ArrayList();
Lits<String>list2 = new ArrayList(list );

3.也可以使用,如下:

Lits<String>list1 = new ArrayList();
Lits<String>list2 = new ArrayList();
list2.addAll(list1)

如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

http://www.lryc.cn/news/38227.html

相关文章:

  • 数据结构-用栈实现队列
  • 第十四章 从 Windows 客户端控制 IRIS
  • 数据结构---双链表
  • Windows 环境安装Scala详情
  • C++ Qt自建网页浏览器
  • Flink从入门到精通系列(四)
  • Nginx 配置实例-反向代理案例一
  • 为什么北欧的顶级程序员数量远超中国?
  • vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters
  • 20230311给Ubuntu18.04下的GTX1080M安装驱动
  • 2023腾讯面试真题:
  • 23种设计模式-建造者模式(Android应用场景介绍)
  • English Learning - L2 语音作业打卡 双元音 [ʊə] [eə] Day17 2023.3.9 周四
  • 【动态规划】多重背包问题,分组背包问题
  • JAVA面向对象特征之——封装
  • 【数据结构】二叉树相关OJ题
  • Windows安装Hadoop
  • ICG-Hydrazide,吲哚菁绿-酰肼,ICG-HZ结构式,溶于二氯甲烷等部分有机溶剂,
  • 【论文阅读】浏览器扩展危害-Helping or Hindering? How Browser Extensions Undermine Security
  • 线性和非线性最小二乘问题的常见解法总结
  • 数据库知识点
  • Maven打包构建Docker镜像并推送到仓库
  • TypeScript 基础学习之泛型和 extends 关键字
  • 《数据分析-JiMuReport04》JiMuReport报表设计入门介绍-页面优化
  • 带头双向循环链表及链表总结
  • (八十)MySQL是如何基于各种规则去优化执行计划的?(中)
  • 第一章:命题与命题公式
  • c/c++开发,无可避免的操作符operator(篇一),操作符重载
  • 【7.MySQL行格式存储】
  • 【Linux】线程实例 | 简单线程池