Arrays.asList使用注意
错误使用Arrays.asList
先上一段报错日志,及对应代码:
List tags = Arrays.asList(tag.split(","));
tags.retainAll(DEFAULT_TAGS);
从报错日志可看出生成的list不支持remove操作,抱着怀疑的态度去查看了对应的源码,发现**Arrays.asList方法返回的是内部类ArrayList,虽然名字和平时用的相同,但不具有完整的功能。**下面是源码部分截图:
总结
- 当你非常非常确定自己不需要对生成的list进行修改操作,譬如平时进行的新增、移除、取交集等等,那你才可以使用Arrays.asList方法来生成。
- 如果你不确定是否使用,可以使用guava的Lists类,Lists.newArrayList来生成。