今天开发时遇到了这样一个
异常java.lang.Unsupported
OperationException
引起异常代码:
1.String[] strs = new String[]{"a","b"};
2. List<String> strList = Arrays.asList(strs);
3. strList.add("c");
在第三行抛出的异常
经分析java源代码Arrys.asList();方法返回的不是平常熟悉的java.util.ArrayList类的对象。而是Arrays类的内部类的对象,而Arrays类里的内部类ArrayList没有实现AbstractList类的add方法,导致抛此异常! strList.add("c");这行代码调用的add方法实际上是这样的:
public boolean add(E e) {
add(size(), e);
return true;
}
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
解决方法:
String[] strs = new String[]{"a","b"};
List<String> strList = new ArrayList<String>(Arrays.asList(strs));
strList.add("c");