UnsupportedOperationException的分析与解决方案

原创 2008年10月20日 13:36:00

 UnsupportedOperationException的分析与解决方案

 

当你在操作List对象时,可能会遇到类似这样的异常。
java.lang.UnsupportedOperationException
 at java.util.AbstractList.remove(Unknown Source)
 at java.util.AbstractList$Itr.remove(Unknown Source)
 at java.util.AbstractCollection.remove(Unknown Source)

在后来找问题中,我突然想到了以前的一段代码出现的问题。
那就是一个方法
public List<XXXX> getXXXX() {
 return Arrays.asList(objectArray);
}

其中,objectArray是一个对象数组, 返回的是Object[].我为了方便,偶然的机

会我就使用了Arrays.asList()方法。结果没有编译异常。当我在运行的时候,

就抛出了不能转换的异常。大致是Object转换为XXXX对象转换异常。

其实,从异常信息可以看出问题的根本是Arrays.asList()方法返回的是一个

AbstractList对象,而并非是ArrayList对象。

异常的根本已经找到了。接下来就讲讲怎么解决这样的异常了。
我的方法是在方法体内定义一个临时List对象,用了ArrayList。
List l = new ArrayList();
当然了可以范型化
List<XXXX> l = new ArrayList<XXXX>();

然后,再用一个for循环来加入到这个l列表中,并最终返回这个列表。

完成代码:

public List<XXXX> getXXXX() {
 List<SysRole> list = new ArrayList<SysRole>();

 for(Object o : objectArray) {
  SysRole user = (SysRole)o;
   
  list.add(user);
 }

 return list;
}

这样就解决了这个异常了。

另外还有一篇英文的连接,大家可以看看。

http://www.theserverside.com/discussions/thread.tss?thread_id=38493

相关文章推荐

关于UnsupportedOperationException异常

我们在使用collection框架code时,会时常遇到UnsupportedOperationException异常,有些人很不了解为什么抛出这个异常,会很郁闷,但是那些只知道code的代码工人不会...

数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException

从别的博客上看到了出现这种情况的分析,我也不再自己从头分析了,附上大神分析好的。 Java中,可以使用Arrays.asList(T... a)方法来把一个数组转换为List,返回一个受指定数组...

数组转换为List后add或remove出现UnsupportedOperationException异常分析

Java中,可以使用Arrays.toList(T... a)方法来把一个数组转换为List,其文档说明如下: asList public static List asList(T... a...

java.lang.UnsupportedOperationException

代码: public static void main(String[] args) { String[] arr ={"a","b","c"}; List li...
  • tolcf
  • tolcf
  • 2014年08月15日 23:42
  • 27145

java容器 -- java.lang.UnsupportedOperationException

一、错误分析 java.lang.UnsupportedOperationException 大致的意思是,你调用的关于的容器的操作是不被允许的。 注意【思想性的一些东西】: 1.这不是说没...

java集合报错:java.lang.UnsupportedOperationException

今天开发时遇到了这样一个异常java.lang.UnsupportedOperationException     引起异常代码:                         URL url=...

【Java】关于java.lang.UnsupportedOperationException异常错误的处理

今天在使用,set集合的add方法时,抛出了一个异常,java.lang.UnsupportedOperationException下面进行错误的复盘,代码如下:public static void ...

关于java.lang.UnsupportedOperationException异常

在调用Arrays.asList()方法时把一个数组转化成List列表时,对得到的List列表进行add()和remove()操作时出现java.lang.UnsupportedOperationEx...
  • lmj0797
  • lmj0797
  • 2013年06月22日 11:32
  • 17130

项目中执行ArrayList.remove() 抛出java.lang.UnsupportedOperationException

项目中代码:if(attrEntity!=null && attrEntity.size()>0){ mdseCodes = new ArrayList(); ...

MyBatis之java.lang.UnsupportedOperationException异常解决方案

今天在使用MyBatis执行sql语句时,出现如下异常: 执行的sql语句配置信息如下: java.util.List"> select t.column_name from user...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UnsupportedOperationException的分析与解决方案
举报原因:
原因补充:

(最多只允许输入30个字)