欢迎光临散文网 会员登陆 & 注册

前方bug出没,记录一次解决UnsupportedOperationException异常的过程!

2022-03-23 10:28 作者:千锋教育  | 我要投稿

前言

开发工作者,不是在写Bug的路上,就是在改Bug的路上,很多同学在遇到bug的时候很懵,不知道要怎么处理,而且也无法复现,今天耀哥就给大家复现一个常见的bug,一起来看看怎么解决吧!

一. bug 重现

近日耀哥的一个学生,在写代码的过程中,使用工具类 Arrays . asList() 把数组转换成集合,然后他想往数组转换的集合中再添加新的元素,结果莫名其妙的抛出了 UnsupportedOperationException 的异常.

核心代码如下:

运行结果如下

二. bug原因分析

打开Arrays.asList 这个方法的源代码我们可以发现:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays . asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。

三. bug 修改

我们只要把由数组转成的集合,通过ArrayList的构造方法,转成一个新的集合就可以完美解决该问题。

现在这个异常你知道该怎么解决了吗?如果还有什么疑问,可以在评论区给我留言哦。


前方bug出没,记录一次解决UnsupportedOperationException异常的过程!的评论 (共 条)

分享到微博请遵守国家法律