Arrays.asList()与UnsupportedOperationException异常
发布日期:2022-02-22 18:04:21
浏览次数:13
分类:技术文章
本文共 1201 字,大约阅读时间需要 4 分钟。
一、Arrays.asList()返回结果的是什么?
让我们看看源码
public staticList asList(T... a) { return new ArrayList<>(a);}
asList()返回了ArrayList,不过它不是我们熟悉的ArrayList,而是Arrays类中的内部类Arrays$ArrayList。下面让我们看看它是什么?
public class Arrays { private static class ArrayListextends AbstractList implements RandomAccess, java.io.Serializable { private static final long serialVersionUID = -2764017481108945198L; private final E[] a; ArrayList(E[] array) { a = Objects.requireNonNull(array); } ....省略 }}
二、Arrays$ArrayList使用add()的正确与否?
首先让我们来举个例子
String[] str = new String[] { "you", "wu"}; List list = Arrays.asList(str); list.add("good");
add()可以正常工作吗?
答案是不能!抛出UnsupportedOperationException异常。为什么会这样呢?
private static class ArrayListextends AbstractList implements RandomAccess, java.io.Serializable { }
在Arrays$ArrayList的定义中它继承了AbstractList,在AbstractList中有这样一些方法
public boolean add(E e) { add(size(), e); return true;}public void add(int index, E element) { throw new UnsupportedOperationException();}
Arrays$ArrayList并没有重载这个方法,而是继承。这样就产生了异常。
转载地址:https://blog.csdn.net/dongli_1996/article/details/103672030 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月19日 17时58分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Android】Activity的task相关
2021-06-29
【Android】 Intent应用详解
2021-06-29
【Android】 Intent详解
2021-06-29
【Android】 常用的Intent
2021-06-29
Android中AsyncTask的简单用法
2021-06-29
【Android】 Android中Log调试详解
2021-06-29
【Android】Android中WIFI开发总结(二)
2021-06-29
【Android】Android之WiFi开发应用示例
2021-06-29
【Android】 Android adb常见问题整理
2021-06-29
【Android】 Android体系结构图
2021-06-29
【Android】 Android中spinner下拉列表的使用
2021-06-29
说说在 python 中,如何删除左右两边不需要的字符
2021-06-29
说说如何管理 Spring Boot 中的起步依赖
2021-06-29
说说如何在 Linux 中,新建账号
2021-06-29
说说如何在 linux 中搭建 FTP 服务
2019-04-26
说说如何在 Python 的正则表达式中使用分组
2019-04-26
说说 Python 正则表达式的匹配类型
2019-04-26
说说 Python 的贪心和非贪心匹配策略
2019-04-26
说说在 Python 中,如何找出所有字符串匹配
2019-04-26
说说 Python 正则表达式中的那些字符类别码
2019-04-26