`

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  
这么二的解决方式?

相关推荐

    Android webveiw 出现栈错误解决办法

    然而,有时在使用WebView时,可能会遇到一些错误,比如“java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes”。这个错误通常发生在尝试在一个具有高...

    hibernate_常见问题集锦.doc

    java.lang.UnsupportedOperationException: The user must supply a JDBC connection ``` **解决方案:** 为了解决这个问题,开发者应该在初始化Configuration对象时,指定Hibernate的配置文件路径,以便读取正确的...

    jdk1.6与jboss5.x冲突问题的解决方法

    描述中提到的问题是尝试在后台声明一个Web服务,但在前台调用时抛出了`java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage`的异常。这通常意味着在处理...

    cxf冲突_0001

    java.lang.UnsupportedOperationException: This class does not support SAAJ 1.1 此异常表明WebLogic服务器不支持SAAJ 1.1标准。要解决这个问题,可以采取以下步骤: 1. 打开`startWebLogic.cmd`或`start...

    ssh 学习笔记

    在遇到异常时,如java.lang.UnsupportedOperationException和java.lang.NoSuchMethodException,通常表明了代码中可能存在API使用错误、框架配置不当或者依赖版本不一致等问题。例如,记录中的异常提示用户必须提供...

    linux 6.x 安装elasticsearch 5.x指引

    [2016-11-06T16:27:21,712][WARN][o.e.b.JNANatives] unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_...

    Elasticsearch-linux

    [2016-11-06T16:27:21,712][WARN][o.e.b.JNANatives]unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_...

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

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

    Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

    在某些情况下,如 JDK 11 或更高版本,可能会遇到 `java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled` 的错误。这通常是因为安全策略限制了反射操作。解决这个问题可能需要调整 ...

    Android开发常见错误小结

    错误信息`java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView`表明试图在AdapterView(ListView的父类)上添加视图是不允许的。 正确的做法是创建一个单独的...

Global site tag (gtag.js) - Google Analytics