Arrays.asList()和Collections.singletonList()报错java.lang.UnsupportedOperationException
问题:
使用工具类Arrays.asList()方法把数组转换成集合时,不能使用修改集合相关的方法,比如add,remove。这个ArrayList是Arrays类自己定义的一个内部类!这个内部类没有实现add()、remove()方法,而是直接使用它的父类
的相应方法。而父类中的add()和remove()是直接抛出异常的!
源码:
解决方法:
总结:
1.Arrays.asList()底层其实还是数组;
2.如果使用了Arrays.asList()的话,最好不要使用其集合的操作方法;
3. List list = new ArrayList<>(Arrays.asList(“a”, “b”, “c”))可以在外面这样包一层真正的ArrayList。
随笔看心情