今天写个代码简化后如下 竟然发生如题的错误
public void do(List rs){
rs.remove("a");
}
明明记得 传进来的rs是一个ArrayList。
仔细查了前面的代码
List rs =Arrays.asList(new String[]{"a","c"});
do(rs);
仔细一查javadoc
When you call Arrays.asList it does not return a java.util.ArrayList. It returns a java.util.Arrays$ArrayList which is an immutable list. You cannot add to it and you cannot remove from it.
If you want a mutable list built from your array you will have to loop over the array yourself and add each element into the list in turn.
Even then your code won't work because you'll get an IndexOutOfBoundsException as you remove the elements from the list in the for loop. There are two options: use an Iterator which allows you to remove from the list as you iterate over it (my recommendation as it makes the code easier to maintain) or loop backwards over the loop removing from the last one downwards (harder to read).
You are using AbstractList. ArrayList and Arrays$ArrayList are both types of AbstractList. That's why you get UnsupportedOperationException: Arrays$ArrayList does not override remove(int) so the method is called on the superclass, AbstractList, which is what is throwing the exception because this method is not implemented on that class (the reason being to allow you to build immutable subclasses)
解决方法是使用循环 add();
或者转换为ArrayList
List list = Arrays.asList(a[]);
List arrayList = new ArrayList(list);
分享到:
相关推荐
`java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...
"Android 兼容性问题:java.lang.UnsupportedOperationException解决办法" Android 兼容性问题:java.lang.UnsupportedOperationException解决办法是 Android 开发中常见的一种问题。该问题会导致应用程序崩溃,...
项目中碰到的,记录一下解决方案
Java.util包是Java标准库中的核心包之一,它包含了大量用于处理各种数据结构和集合的类和接口。在这个包中,我们经常会用到`Iterator`和`List`接口,这两个接口在Java编程中扮演着非常重要的角色。 首先,`Iterator...
然而,有时在使用WebView时,可能会遇到一些错误,比如“java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes”。这个错误通常发生在尝试在一个具有高...
### Elasticsearch在Linux系统的安装与配置详解 #### 一、引言 Elasticsearch是一款基于Lucene的开源搜索和分析引擎,适用于全文检索、结构化数据检索等场景。它以其高性能、高扩展性和易于使用的特性而受到广泛...
测试javassist 用于动态代码插入的字节码级别的类操作测试虚拟机参数-agentlib:jdwp = ... 根据您运行的 JVM,可能会出现以下错误:线程“HotSwap”中的异常 java.lang.UnsupportedOperationException:未实现架构更改
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException 解决这个问题
xception in thread "main" java.lang.UnsupportedOperationException Arrays.asList转化基本数据类型数组的时候有个意想不到的坑 当我们在实际业务开发过程中,难免会遇到数组转List的操作,通常我们所选择的就是...
开发中碰到的报错,问题已解决,写个文档记录一下这个问题及解决方案
以下是一个示例,它使用`java.lang.System`的`getProperty`方法获取用户主目录,然后添加"Documents"子目录: ```java import java.io.File; import java.util.Properties; public class Main { public static ...
import java.util.Arrays; import java.util.List; public class ArrayToList { public static void main(String[] args) { // 这样输出数组内容 System.out.println(Arrays.toString(args)); // 将数组转换为...
java.lang.UnsupportedOperationException: The user must supply a JDBC connection ``` **解决方案:** 为了解决这个问题,开发者应该在初始化Configuration对象时,指定Hibernate的配置文件路径,以便读取正确的...
开发中碰到的报错,问题已解决,写个文档记录一下这个问题及解决方案
在Java编程语言中,`UnsupportedOperationException` 是一个标准的运行时异常,通常在不支持特定操作的情况下抛出。这个错误通常表明某个方法被调用,但该方法在当前上下文中并未实现或者不适用。让我们深入了解一下...
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.lang.UnsupportedOperationException: Unsupported class version number [52.0] (maximum 51.0, Java 1.7),原因是proguard.jar版本太低,需要5.0以上的版本
开发中碰到的报错,问题已解决,写个文档记录一下这个问题及解决方案