java.lang.UnsupportedOperationException异常

原创 2015年07月10日 17:33:06

出错代码段:

String[] ids=approveId.split(",");
List<String> list=Arrays.asList(ids);
HashSet h  =   new  HashSet(list); 
list.clear(); 
list.addAll(h); 
ids=(String[]) list.toArray();

常常使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:


Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。

Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等 

method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。

ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。


解决方法是使用Iterator,或者转换为ArrayList
List list = Arrays.asList(a[]);

List arrayList = new ArrayList(list);


修改后代码段:

String[] ids=approveId.split(",");
List<String> list=Arrays.asList(ids);
List arrayList = new ArrayList(list);//这里必须要转成ArrayList,否则在执行.clear()时会报错。
HashSet h  =   new  HashSet(arrayList); 
arrayList.clear(); 
arrayList.addAll(h); 
ids=(String[]) arrayList.toArray();



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DoubleLiu_/article/details/46833399

Android -- Canvas java.lang.UnsupportedOperationException

干货 java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canva...
  • javawebsoa
  • javawebsoa
  • 2015-01-13 09:23:46
  • 784

调用Set.addAll()方法时抛UnsupportedOperationException异常

一个低级错误,却因为基础知识点的疏忽,导致程序运行出错,特记录一下。...
  • woyaoxuejavaya
  • woyaoxuejavaya
  • 2016-09-08 16:05:49
  • 1206

JDK异常及原因集合

异常:java.lang.UnsupportedOperationException at java.util.AbstractMap.put(AbstractMap.java:186) 原因:Co...
  • lxb_champagne
  • lxb_champagne
  • 2013-08-22 11:30:09
  • 2036

Android应用抛异常java.lang.UnsupportedOperationException

出现原因可能是硬件加速出的问题,在AndroidManifest.xml配置文件的application里面加上 android:hardwareAccelerated="false"...
  • a125138
  • a125138
  • 2014-04-02 09:09:41
  • 3077

可选操作 java.lang.UnsupportedOperationException Collection

执行各种不同的添加和移除的方法在Collection接口中都是可选操作。这意味着实现类并不需要为这些方法提供方能定义。为什么要将方法定义为可选的呢?比如说抽象类的的某些派生类实现里,或者接口的某个实现...
  • luo110556
  • luo110556
  • 2016-01-11 15:13:11
  • 2127

jsonPath处理数据出现UnsupportedOperationException异常原因

现象: 在使用JSONPath处理json数据时出现下面的异常 原因探究: 该问题是由于jsonPath的数组格式的数据语法错误导致的 数组格式的语法规则为使用中括号:hotels.w...
  • a735465047
  • a735465047
  • 2016-08-16 17:29:38
  • 368

removeAll throws java.lang.UnsupportedOperationException

【1】出现的问题: 如果该列表list 不支持 removeAll 方法的话, 就会抛出UnsupportedOperationException 【2】解决方法:List list = new ...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2015-12-19 09:13:43
  • 1084

Collections.emptyList()引发的java.lang.UnsupportedOperationException

缘由: private static List getEmptyList() { return Collections.emptyList(); } public static void ...
  • github_17844375
  • github_17844375
  • 2014-07-18 13:51:32
  • 1582

异常java.lang.UnsupportedOperationException

严重: 此驱动程序不支持 Java Runtime Environment (JRE) 1.7 版。请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库。 java.lang.Unsup...
  • a1017680279
  • a1017680279
  • 2014-04-11 21:48:53
  • 259

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

今天在使用MyBatis执行sql语句时,出现如下异常: 执行的sql语句配置信息如下: java.util.List"> select t.column_name from user...
  • zkn_CS_DN_2013
  • zkn_CS_DN_2013
  • 2015-08-27 11:42:09
  • 15534
收藏助手
不良信息举报
您举报文章:java.lang.UnsupportedOperationException异常
举报原因:
原因补充:

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