Arrays.asList 用法
将数组转换为集合
String[] s = {"a","b","c"};
List<String> list = java.util.Arrays.asList(s);
当我们对转换之后的集合做以下操作时会抛出java.lang.UnsupportedOperationException异常。
list.add("1");
list.remove("1");
list.clear();
解析源码可以看出:
我们发现 Arrays.asList 返回的 ArrayList类 是 Arrays类的内部类,这个类重写了很多常用方法, 却没有重写我们的add/remove/clear方法,所以在使用时会抛出java.lang.UnsupportedOperationException异常。
《阿里巴巴Java开发手册》泰山版 提及:
使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的 add/remove/clear
方法会抛出 UnsupportedOperationException 异常。
总结:我们在使用Arrays.asList时,可以用于简单的参数效验,避免去改变list
博客探讨了Arrays.asList方法将数组转换为集合时的限制,指出转换后的集合不支持add、remove和clear等修改操作,因为其内部实现类未重写这些方法,会抛出UnsupportedOperationException。《阿里巴巴Java开发手册》也强调了这一问题,建议仅用于读取操作,避免修改集合。
3421

被折叠的 条评论
为什么被折叠?



