java.lang.UnsupportedOperationException解决方法

java.lang.UnsupportedOperationException解决方法

Scroll Down

工作中处理数据的时候,我用Arrays.asList(); 把数组转成list.
对这个转后的list进行 remove操作,出现了
java.lang.UnsupportedOperationException 的异常

发生问题的原因如下:

调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。

解决方法如下:

/**
 *
 */
public class ListTest {
    public static void main(String[] args) {
        String[] array = {"1","2","3","4","5"};
        List<String> list = Arrays.asList(array);
        List arrList = new ArrayList(list);
        arrList.add("6");
    }
}