话不多说,上代码
工作台输出
这是为什么呢??? 不就是向集合里面添加数据吗??
首先我们来看看这个异常UnsupportedOperationException,这个异常的意思是不支持操作,
说明这个add方法有问题,我们可以研究一下Arrays.asList()这个方法的源码
发现返回了ArrayList,继续进到ArrayList
发现了这个好像不是ArrayList类,我们看看原始的ArrayList类
发现确实不一样,于是我们找这个静态ArrayList的add方法,发现这个类没有add方法,于是找到AbstractList这个父类,找到add方法
又调用了add(size(),e)这个方法,继续点进去
这就明白了!!!
总结:如果在调用 asList 方法转换对象的时候我们转换后的对象已经不再是 ArrayList 这个对象了,因为它们并不是我们熟悉的 ArrayList ,这个时候是不能对转化出来的结果进行 add 或者 remove 操作的。
解决方法:将数组转换来的集合放入ArrayList集合中
结束结束!!!