`

java.lang.UnsupportedOperationException 解决方案

 
阅读更多
今天遇到这么一个异常:
Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.remove(AbstractList.java:144)
	at java.util.AbstractList$Itr.remove(AbstractList.java:360)
	at java.util.AbstractCollection.remove(AbstractCollection.java:252)
	at com.test.test01.Test.main(Test.java:27)

查了一下发现是使用了Java里面未实现的方法,真晕。问题是这样的:
我想把一串字符串eg: "123,4343,34543543",直接解析成List,然后删除其中的某一个元素,结果就出问题了,具体如下:
String testStr = "100,300,400,545,666";
List<String> test = Arrays.asList(testStr.split(","));
test.remove("100");


解决方案也简单就是不用呗,绕道:
String testStr = "100,300,400,545,666";
List<String> test = new ArrayList<String>();
for(String t : testStr.split(",")){
		test.add(t);
}
test.remove("100");

分享到:
评论
10 楼 mingyun 2017-10-24  
但是 java.util.ArrayList 实现了 removeAll 方法,再套一层即可
List<String> list = new ArrayList<String>(Arrays.asList(strArray));
就OK了
9 楼 mingyun 2017-10-24  
1.因为 Arrays.asList 返回的是 Arrays内部的私有静态类ArrayList 而不是 java.util.ArrayList ,而此 ArrayList 继承 AbstractList ,间接实现了 List ,所以可以用List 接收 asList 的返回值

2.异常为不支持此种操作,是 Arrays内部的私有静态类ArrayList 没有 removeAll 的方法
8 楼 leolu007 2017-07-31  
用java8新特性
String testStr = "100,300,400,545,666"; 
List<String> test = Arrays.asList(testStr.split(",")); 
test = test.stream().filter(line -> !"100".equals(line)).collect(Collectors.toList());
test .forEach(System.out::println);
7 楼 qq958112082 2016-07-14  
谢谢,学习了
6 楼 z68867945 2016-03-09  
直接用这个Arrays.asList当做参数创建一个ArrayList即可,完全不需要去遍历再add:
List<String> test = new ArrayList<String>(Arrays.asList(testStr.split(",")));
5 楼 a173030685 2015-12-23  
点点滴滴嗯嗯嗯嗯[url]
点点滴滴
[/url]    
4 楼 yunduanyucan 2015-07-12  
java.util.Arrays$ArrayList 没有重写add(), removew()方法
3 楼 大大灰狼 2014-11-20  
写错了,改动下,返回的是java.util.Arrays$ArrayList,是Arrays里面的一个内部类,方法很少
大大灰狼 写道
楼主,刚好我也碰到这种问题了,既然你说是“使用了Java里面未实现的方法”,那就可以猜出是什么问题了,给你写下解决方式吧:

		String testStr = "100,300,400,545,666";
		List<String> test = new ArrayList<String>();
		test.addAll(Arrays.asList(testStr.split(",")));
		test.remove("100");



原理也很简单, Arrays.asList返回的List的类型是 Arrays.asList,不支持下面的方法。
2 楼 大大灰狼 2014-11-20  
楼主,刚好我也碰到这种问题了,既然你说是“使用了Java里面未实现的方法”,那就可以猜出是什么问题了,给你写下解决方式吧:

		String testStr = "100,300,400,545,666";
		List<String> test = new ArrayList<String>();
		test.addAll(Arrays.asList(testStr.split(",")));
		test.remove("100");



原理也很简单, Arrays.asList返回的List的类型是 Arrays.asList,不支持下面的方法。
1 楼 chendixun 2014-10-28  
这么二的解决方式?

相关推荐

    java.lang.UnsupportedOperationException异常(csdn)————程序.pdf

    java.lang.UnsupportedOperationException异常(csdn)————程序

    Android 兼容性问题:java.lang.UnsupportedOperationException解决办法

    主要介绍了Android 兼容性问题:java.lang.UnsupportedOperationException解决办法的相关资料,需要的朋友可以参考下

    Android webveiw 出现栈错误解决办法

    主要介绍了Android webveiw 出现栈错误解决办法的相关资料,出现java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes,这里提供解决办法,需要的朋友...

    1 ElasticSearch 安装

    ElasticSearch Linux系统安装教程

    prueba-javassist:用于动态代码插入的字节码级别的类操作测试

    测试javassist 用于动态代码插入的字节码级别的类操作测试虚拟机参数-agentlib:jdwp = ... 根据您运行的 JVM,可能会出现以下错误:线程“HotSwap”中的异常 java.lang.UnsupportedOperationException:未实现架构更改

    list使用过程中遇到的坑

    xception in thread "main" java.lang.UnsupportedOperationException Arrays.asList转化基本数据类型数组的时候有个意想不到的坑 当我们在实际业务开发过程中,难免会遇到数组转List的操作,通常我们所选择的就是...

    环信移动客服DEMO无问题版

    &gt; com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException 解决这个问题

    MockDialogInterface.rar_All You Need

    A mock {@link android.content.DialogInterface} class. All methods are non-functional and throw {@link java.lang.UnsupportedOperationException}. Override it to provide the operations that you need.

    java 操作错误(UnsupportedOperationException)

    java 操作错误(UnsupportedOperationException) java 操作错误(UnsupportedOperationException)

    Proguard v5.3.3.rar

    代码混淆的时候出现java.lang.UnsupportedOperationException: Unsupported class version number [52.0] (maximum 51.0, Java 1.7),原因是proguard.jar版本太低,需要5.0以上的版本

    java 面试题 总结

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    JAVA面试题最全集

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...

    odd-collection:一些集合的想法,用 Java 8 实现

    这个概念的后果是:putAll 方法,这是一个可选方法,抛出一个 UnsupportedOperationException,因为我不能保证给定 Map 的所有元素都会添加到 BijectiveMap。 有些可能会被压缩,并且不能保证如果您尝试放置具有 5 ...

    超级有影响力霸气的Java面试题大全文档

     java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或...

    java范例开发大全(pdf&源码)

    实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch...

    java范例开发大全源代码

     实例43 操作错误(UnsupportedOperationException) 60  4.2 运行时异常 61  实例44 找不到指定类时发生的异常(ClassNotFoundException) 62  实例45 请求的方法不存在(NoSuchMethodException) 63 ...

    java范例开发大全

    实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch...

    Java范例开发大全 (源程序)

     实例43 操作错误(UnsupportedOperationException) 60  4.2 运行时异常 61  实例44 找不到指定类时发生的异常(ClassNotFoundException) 62  实例45 请求的方法不存在(NoSuchMethodException) 63  4.3...

Global site tag (gtag.js) - Google Analytics