java 异常:java.lang.UnsupportedOperationException

异常信息:

java.lang.UnsupportedOperationException

    java.util.AbstractList.remove(Unknown Source)

    java.util.AbstractList$Itr.remove(Unknown Source)

    java.util.AbstractCollection.remove(Unknown Source)

    .....................................


从异常信息可以看出,错误定位在集合使用remove方法上,原因是因为部分集合类型一样但是缺少部分方法或不支持。

如特殊情况如下:

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

Arrays.asLis    t() 返回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。

解决方法是转为ArrayList:

List list = Arrays.asList( 数组 );

List arrayList  = new ArrayList( list );

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,977评论 2 8
  • 泛型 对象和实例是一个意思,类与对象的关系就像数据类型和变量一样。 泛型的主要目的之一就是用来指定类(如:容器)要...
    yueyue_projects阅读 594评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • 天冷了,开始贪睡,巫5点半的闹钟响,我才醒来,他走了以后,我竟然迷迷糊糊又睡着了,没有晨读。 语言漂流第23人,8...
    绿百合阅读 145评论 0 0