Java的UnsupportedOperationException

问题来源

当使用Arrays.asList(T...a)创建新的集合时,如果往集合中添加元素就会报错。代码如下

    Vertex[] startPair = graph.findMinTwoNOde();
    startPair[1].setParent(startPair[0]);
    List<Vertex> res = Arrays.asList(startPair);

报错信息
图片说明

分析原因

首先跳转到Arrays类的静态方法asList(T...a),代码如下:
图片说明
我们看到他返回了一个ArrayList对象,开始以为是java.util包中的ArrayList,但是java.util包中的ArrayList并没有传入数组的构造方法。于是跟进去。发现这是Arrays类中的一个内部类,这个类继承了AbstractList。
图片说明
但是,这个类没有重写add和remove方法!!
图片说明
因此直接调用父类的add方法和remove方法,产生不支持的操作异常UnsupportedOperationException
图片说明

全部评论

相关推荐

2024-12-04 20:41
南华大学 C++
牛客774533464号:现在要求你有实习经验,才让你实习!
点赞 评论 收藏
分享
2024-12-10 17:38
门头沟学院 Node.js
想逆袭好楠:太紧凑了感觉,文字好多看的眼花,建议自我评价删了,因为自我评价都是吹嘘自己的,感觉没什么价值,然后改一下排版
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务