码迷,mamicode.com
首页 > 编程语言 > 详细

coding++:Arrays.asList() - java.lang.UnsupportedOperationException异常处理

时间:2019-12-25 15:58:23      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:util   处理   span   发放   one   list   转化   一个   bsp   

这个异常遇到了才知道坑这么大,坑爹的方法。

private String[] otherUserFromArray = new String[]{“3”, “4”, “发放”};

List<String> userFromList = Arrays.asList(otherUserFromArray);

在使用 Arrays.asList()转化数组成为list的时候,生成了ArrayList, 表面上看是 java.util.ArrayList,

实际上是Arrays的内部类 ArrayList, 两个 ArrayList,都是继承 AbstractList,这他妈就是坑,不进去看源码仔细了解,

还以为是一个ArrayList,但是进去后才发现,Arrays的内部类ArrayList没有重写 AbstractList的add和remove方法,

再去看AbstractList的add和remove方法,居然是直接抛出异常 java.lang.UnsupportedOperationException,没有任何处理。

这就导致上面这种方法生成的Arrays的ArrayList使用add或者remove方法会直接抛出异常。

所以,在使用Arrays.asList()做转化的时候,如果要进行修改操作,就要再转化一次:

List<String> userFromList = new ArrayList<>(Arrays.asList(otherUserFromArray));

这样转化为 java.util.ArrayList ,就可以进行修改操作了。

好了,希望都不要被这家伙坑了。

coding++:Arrays.asList() - java.lang.UnsupportedOperationException异常处理

标签:util   处理   span   发放   one   list   转化   一个   bsp   

原文地址:https://www.cnblogs.com/codingmode/p/12096881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!