java.lang.UnsupportedOperationException

String[] strUserId = new String[]{"12311", "526314"};
List<String> list = Arrays.asList(strUserId);
list.add("1111");
list.remove(0);

Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:144)

使用Arrays.asList()将数组转换为一个List后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 
而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove、add等method在AbstractList中默认是throw UnsupportedOperationException而且不作任何操作。

public void add(int index, E element) {
	throw new UnsupportedOperationException();
}

ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override,我们把它转换为一个ArrayList便可。
List<String> list = new ArrayList<String>(Arrays.asList(strUserId));

你可能感兴趣的:(java.lang.UnsupportedOperationException)