调用List的方法抛出UnsupportedOperationException
Background
使用Arrays.asList方法将数组转化成List集合后调用List的方法抛出UnsupportedOperationException异常。
Exception
1 | java.lang.UnsupportedOperationException |
Why
Arrays.asList方法重新new了一个ArrayList, 但是这个ArrayList不是来自于util包下面的ArrayList, 而是Arrays类里面的内部静态类。这个内部静态类继承AbstractList, 但是没有重写add() , remove()等方法, 所以在调用add(). remove()等方法的时候,实际调用的是AbstractList类的add()和remove()的方法,因此会抛出异常。
How
1 | String[] testArr = {"Tom","Jerry","Dave"}; |