时间宝贵,先讲解决方法:

使用Arrays.asList()转成的数组,调add或者addAll方法报错java.lang.UnsupportedOperationException

使用new ArrayList(Arrays.asList())转一下,再调add或者addAll方法。

下边讲下原因:

深入浅出一波源代码,走你:

Arrays.asList(xxx),进入到Array类源代码中(Array.class)!

public static ListasList(T... a) {

return new ArrayList<>(a);

}

可以看到,调用Array的静态方法asList(xxx)返回的是一个ArrayList,

再深入,点进去ArrayList,重点来了:

该ArrayList是Array的内部类!

对比了下Array内部的ArrayList和java.util.ArrayList的add方法,发现

Array内部的ArrayList没有重写AbstractList的add(xxx),导致我们上诉代码调用的add(xxx)其实是直接调用AbstractList类的add(xxx),所以直接抛出了异常UnsupportedOperationException。

直接将数组转成的列表source,传入新的List的构造方法中即可

List dest = new ArrayList(source);

java list addall源码_解决list.add、list.addAll报错java.lang.UnsupportedOperationException相关推荐

  1. 解决Tomcat下IntelliJ IDEA报错java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener

    解决Tomcat下IntelliJ IDEA报错java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener   笔者在做代 ...

  2. java web开源项目源码_超赞!推荐一个专注于Java后端源码分析的Github项目!

    大家好,最近有小伙伴们建议我把源码分析文章及源码分析项目(带注释版)放到github上,这样小伙伴们就可以把带中文注释的源码项目下载到自己本地电脑,结合源码分析文章自己本地调试,总之对于学习开源项目源 ...

  3. 简单开源java ssm_[VIP源码]【S006】SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码...

    java源码项目名称:SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码  java项目源码 1 ?, R, _* q  n8 v) S$ R7 ?百度网盘 ...

  4. 安装python37路径报错_解决pycharm安装python库报错问题

    最近在玩微信图灵机器人,不过我安装有一些库,安装报错,上网找了很久,总结有两种方法,记录一下 方法一: 手动安装,直接到官网你需要的python库下载到本地, 放在安装python路径,C:\User ...

  5. python elif报错_解决python循环的elif报错的方法

    解决python循环的elif报错的方法 发布时间:2020-08-05 15:36:51 来源:亿速云 阅读:96 作者:小新 解决python循环的elif报错的方法?这个问题可能是我们日常学习或 ...

  6. java招投标网站源码_基于jsp的招标系统-JavaEE实现招标系统 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的招标系统, 该项目可用各类java课程设计大作业中, 招标系统的系统架构分为前后台两部分, 最终实现在线上进行招标 ...

  7. java 上传源码_和付费网盘说再见,跟着本文自己起个网盘(Java)

    项目源码获取:关注转发之后私信回复[源码]即可免费获取到 一.项目介绍 一款开源.使用简单.功能完整的 Java 网盘/云盘系统.支持在线视频播放.文档在线预览.音乐播放.图片查看等功能的文件云存储平 ...

  8. java婚庆网站源码_基于jsp的婚庆网站-JavaEE实现婚庆网站 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的婚庆网站, 该项目可用各类java课程设计大作业中, 婚庆网站的系统架构分为前后台两部分, 最终实现在线上进行婚庆 ...

  9. java 并发框架源码_某网Java并发编程高阶技术-高性能并发框架源码解析与实战(云盘下载)...

    第1章 课程介绍(Java并发编程进阶课程) 什么是Disruptor?它一个高性能的异步处理框架,号称"单线程每秒可处理600W个订单"的神器,本课程目标:彻底精通一个如此优秀的 ...

最新文章

  1. 奶源向左配方向右,飞鹤、澳优、贝因美们要如何重振国产奶粉?
  2. Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘
  3. 阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)
  4. 【Linux入门学习之】ubuntu10.04 ruijie配置上网(用mentohust)
  5. 大数据平台之初体验 | 网易猛犸 | 数据仓库、调度系统、数据质量、离线与实时计算应有尽有。
  6. CSS3动画之一:Transitions功能
  7. CentOS下openssh版本降级
  8. Python 单例模式实现的五种方式
  9. 记所内部“与顶级会议作者面对面”系列学术活动交流感受
  10. [C#] C#访问数据库的代码(Access版本)
  11. java int stack_java stack总结
  12. mysql什么是主键和外键?
  13. 思科与华为设备OSPF配置命令对比
  14. Python爬虫爬取一页韩寒新浪博客
  15. 几种流行Webservice框架性能对比(转载、拼接)
  16. Canvas Scaler
  17. 做个什么网站可以赚钱,这6种网站最好赚钱!
  18. Android6.0权限
  19. == 和 equals 的区别
  20. Grain: Improving Data Efficiency of Graph Neural Networks via Diversified Influence Maximization分析

热门文章

  1. 微信转账2020假图片_重阳节祝福语大全,2020重阳节祝福表情微信图片
  2. GAN初探:模拟高斯分布
  3. 微信支付后“自动”绑定用户手机号与公众号
  4. 股票个人交易接口怎样导入excel 数据?
  5. 微信小程序0 校园任务跑腿接单平台 Android hbuilderx App毕业设计.
  6. 【我的JS第三本】JavaScript_DOM编程艺术第二版读书笔记
  7. C++基础编程题(50)求一元二次方程式的实根,如果方程没有实根,则输出有关警告信息。
  8. ffmpeg 提取视频中音轨为高码率mp3文件
  9. 多线程一,什么是多线程,创建多线程的几种方式
  10. Windows环境下搭建Shell环境