最近在写单元测试Mock数据时常用到Arrays.aslist()方法,在运行时报了java.lang.UnsupportedOperationException异常
先翻看源码:
发现Arrays工具类中并没有返回我们常用的ArrayList,而是在内部创建了内部类ArrayList并继承AbstractList,但是Arrays的内部类ArrayList 并没有重写AbstractList的方法,我们调用时实际上调用的AbstractList的方法,再看看AbstractList做了什么
问题到这就清晰了,然后我改成了下面的方式:
public static void main(String[] args) {
//List<String> list = Arrays.asList("aa", "bb");
List<String> list = new ArrayList(Arrays.asList("aa", "bb"));
list.remove("aa");
}