问题分析
当请求了不支持的操作时抛出此类异常。这个异常有三个子类:
HeadlessException, 在不支持键盘、显示器或鼠标的环境中调用与键盘、显示器或鼠标有关的代码时,被抛出的异常。
ReadOnlyBufferException, 当在只读缓冲区上调用内容可变(content-mutation)的方法(例如put或compact方法)时,抛出此未经检查的异常。
ReadOnlyFileSystemException,当试图更新一个关联了只读权限的文件的对象时抛出此类异常。
解决方案
当请求了不支持的操作时抛出此类异常,请根据堆栈信息检查相关代码,根据官方文档及状态图检查是否进行了不支持的操作。
示例一
java.lang.UnsupportedOperationException
java.util.AbstractList.add(UnknownSource)
java.util.AbstractList.add(UnknownSource)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
问题分析:根据官方文档,asList()
函数返回的List不支持结构调整,即不支持remove和add操作。
解决方案:可以创建一个新的List,将符合要求的List加入新的List对象中。
代码示例
public void chooseObject(String[] array, String key){
List<String> list=Arrays.asList(array);
/* 错误的代码
list.remove(0); */
List<String> newList=new ArrayList<String>();
for(String tmp:list){
if(tmp.contains(key)){
newList.add(tmp);
}
}
System.out.println(newList.toString());
}
参考文献
文档内容是否对您有帮助?