java list addall源码_解决list.add、list.addAll报错java.lang.UnsupportedOperationException
时间宝贵,先讲解决方法:
使用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相关推荐
- 解决Tomcat下IntelliJ IDEA报错java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
解决Tomcat下IntelliJ IDEA报错java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener 笔者在做代 ...
- java web开源项目源码_超赞!推荐一个专注于Java后端源码分析的Github项目!
大家好,最近有小伙伴们建议我把源码分析文章及源码分析项目(带注释版)放到github上,这样小伙伴们就可以把带中文注释的源码项目下载到自己本地电脑,结合源码分析文章自己本地调试,总之对于学习开源项目源 ...
- 简单开源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 ?百度网盘 ...
- 安装python37路径报错_解决pycharm安装python库报错问题
最近在玩微信图灵机器人,不过我安装有一些库,安装报错,上网找了很久,总结有两种方法,记录一下 方法一: 手动安装,直接到官网你需要的python库下载到本地, 放在安装python路径,C:\User ...
- python elif报错_解决python循环的elif报错的方法
解决python循环的elif报错的方法 发布时间:2020-08-05 15:36:51 来源:亿速云 阅读:96 作者:小新 解决python循环的elif报错的方法?这个问题可能是我们日常学习或 ...
- java招投标网站源码_基于jsp的招标系统-JavaEE实现招标系统 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的招标系统, 该项目可用各类java课程设计大作业中, 招标系统的系统架构分为前后台两部分, 最终实现在线上进行招标 ...
- java 上传源码_和付费网盘说再见,跟着本文自己起个网盘(Java)
项目源码获取:关注转发之后私信回复[源码]即可免费获取到 一.项目介绍 一款开源.使用简单.功能完整的 Java 网盘/云盘系统.支持在线视频播放.文档在线预览.音乐播放.图片查看等功能的文件云存储平 ...
- java婚庆网站源码_基于jsp的婚庆网站-JavaEE实现婚庆网站 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的婚庆网站, 该项目可用各类java课程设计大作业中, 婚庆网站的系统架构分为前后台两部分, 最终实现在线上进行婚庆 ...
- java 并发框架源码_某网Java并发编程高阶技术-高性能并发框架源码解析与实战(云盘下载)...
第1章 课程介绍(Java并发编程进阶课程) 什么是Disruptor?它一个高性能的异步处理框架,号称"单线程每秒可处理600W个订单"的神器,本课程目标:彻底精通一个如此优秀的 ...
最新文章
- 奶源向左配方向右,飞鹤、澳优、贝因美们要如何重振国产奶粉?
- Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘
- 阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)
- 【Linux入门学习之】ubuntu10.04 ruijie配置上网(用mentohust)
- 大数据平台之初体验 | 网易猛犸 | 数据仓库、调度系统、数据质量、离线与实时计算应有尽有。
- CSS3动画之一:Transitions功能
- CentOS下openssh版本降级
- Python 单例模式实现的五种方式
- 记所内部“与顶级会议作者面对面”系列学术活动交流感受
- [C#] C#访问数据库的代码(Access版本)
- java int stack_java stack总结
- mysql什么是主键和外键?
- 思科与华为设备OSPF配置命令对比
- Python爬虫爬取一页韩寒新浪博客
- 几种流行Webservice框架性能对比(转载、拼接)
- Canvas Scaler
- 做个什么网站可以赚钱,这6种网站最好赚钱!
- Android6.0权限
- == 和 equals 的区别
- Grain: Improving Data Efficiency of Graph Neural Networks via Diversified Influence Maximization分析
热门文章
- 微信转账2020假图片_重阳节祝福语大全,2020重阳节祝福表情微信图片
- GAN初探:模拟高斯分布
- 微信支付后“自动”绑定用户手机号与公众号
- 股票个人交易接口怎样导入excel 数据?
- 微信小程序0 校园任务跑腿接单平台 Android hbuilderx App毕业设计.
- 【我的JS第三本】JavaScript_DOM编程艺术第二版读书笔记
- C++基础编程题(50)求一元二次方程式的实根,如果方程没有实根,则输出有关警告信息。
- ffmpeg 提取视频中音轨为高码率mp3文件
- 多线程一,什么是多线程,创建多线程的几种方式
- Windows环境下搭建Shell环境