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-30 22:49
长沙理工大学 Java
神哥了不得:没什么可以指导的地方了,简历确实牛,我大号分享过投递策略,广投就行
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务