文档章节

java.lang.UnsupportedOperationException

wushuaixing
 wushuaixing
发布于 2014/03/11 17:38
字数 179
阅读 977
收藏 3
使用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(),add()等,所以throw UnsupportedOperationException。

      例子:

package com.test;

    import java.util.Arrays;
import java.util.List;

public class TestUnsupported {
  public static void main(String[] args) {
        String[] s = {
            "one", "two", "three", "four", "five",
            "six", "seven", "eight", "nine", "ten",
          };

        List a = Arrays.asList(s);
        System.out.println(
          "a.contains(" + s[0] + ") = " +
          a.contains(s[0]));
        a.add("eleven"); // Unsupported
        a.remove(s[0]); // Unsupported
      }
}

运行后,抛出异常如下:

Exception in thread "main" java.lang.UnsupportedOperationException
 at java.util.AbstractList.add(AbstractList.java:151)
 at java.util.AbstractList.add(AbstractList.java:89)
 at com.test.TestUnsupported.main(TestUnsupported.java:28)

 

解决方法是使用Iterator,或者转换为ArrayList

List arrayList = new ArrayList(a);

© 著作权归作者所有

共有 人打赏支持
wushuaixing
粉丝 0
博文 4
码字总数 3430
作品 0
海淀
程序员
私信 提问
jeesite问题 启动时报错 求教啊。。。

2014-05-09 14:41:54,478 [main] ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed org.springframework.beans.factory.BeanCreationException: Err......

rongda007
2014/05/09
13.8K
3
下面的代码为什么报错

public static void main(String[] args){ a.add("a" + i); b.add("b" + i); } PS:报错信息是:java.lang.UnsupportedOperationException...

于之剥柚
2012/06/08
1K
9
The user must supply a JDBC connection这个是什么原因啊。?

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.UnsupportedOperationException: ......

Bless_you
2013/04/18
2.8K
4
使用redis做为shiro回话管理的问题

@thinkgem 你好,想跟你请教个问题: 使用redis做为shiro的session回话管理的时候 vals.add((V) obj);一直报错 java.lang.UnsupportedOperationException at java.util.AbstractList.add(Ab......

zj477600
2017/08/03
139
1
java如何读取sybase中的image类型数据

### Error querying database. Cause: org.jboss.util.NestedSQLException: Error; - nested throwable: (java.lang.UnsupportedOperationException: The method com.sybase.jdbc3.jdbc.SybR......

苏城
2016/07/13
581
4

没有更多内容

加载失败,请刷新页面

加载更多

保护Hadoop集群三大方法

大约在两年前,开源数据库解决方案MongoDB以及Hadoop曾遭受过大量恶意攻击,这些攻击后被统称为“勒索软件”,因为其攻击者会擦除或加密数据,然后向被攻击者索要资金以恢复数据。自今年以来...

linuxCool
14分钟前
1
0
开源 java CMS - FreeCMS2.8会员我的留言

项目地址:http://www.freeteam.cn/ 我的留言 从左侧管理菜单点击我的留言进入。在这里可以查看当前登录会员的所有留言记录。 查看留言 点击留言标题可以查看留言详细内容。 删除留言 选择留...

freeteam
33分钟前
2
0
OSChina 周五乱弹 —— 这就是不要女朋友的理由

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @狄安娜的猫 :分享丁家鑫的单曲《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 手机党少年们想听歌,请...

小小编辑
今天
690
19
CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
6
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部