文档章节

java.lang.UnsupportedOperationException

wushuaixing
 wushuaixing
发布于 2014/03/11 17:38
字数 179
阅读 936
收藏 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
海淀
程序员
下面的代码为什么报错

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.6K
4
PushSharp在真机上运行报java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf

PushSharp在真机上运行报java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf.在模拟器上正常...

759930804
2013/07/02
2.6K
2
Jfinal this.getParaMap().put("data_to_file",String[]);存值问题

this.getParaMap().put("key",String[]);,获取到的map可以这样放吗:? 错误提示: java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableMap.put(Collections.j......

guanxf
2013/03/08
407
2
java如何读取sybase中的image类型数据

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

苏城
2016/07/13
452
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
17分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
19分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
23分钟前
1
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
27分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部