使用Arrays.asList()去处理一个数组的时候,报错
java.lang.UnsupportedOperationException
String[] arrayStr = new String[4];
arrayStr[0] = "0";
arrayStr[1] = "1";
arrayStr[2] = "2";
arrayStr[3] = "3";
List<String> list = Arrays.asList(arrayStr);
list.clear();
查看源码发现如下:
在Arrays.java, asList()方法是构建了一个ArrayList,但是这个是属于Arrays.ArrayList
@SafeVarargs
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
private static final long serialVersionUID = -2764017481108945198L;
private final E[] a;
ArrayList(E[] array) {
if (array==null)
throw new NullPointerException();
a = array;
}
public int size() {
return a.length;
}
public Object[] toArray() {
return a.clone();
}
public <T> T[] toArray(T[] a) {
int size = size();
if (a.length < size)
return Arrays.copyOf(this.a, size,
(Class<? extends T[]>) a.getClass());
System.arraycopy(this.a, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
public E get(int index) {
return a[index];
}
public E set(int index, E element) {
E oldValue = a[index];
a[index] = element;
return oldValue;
}
public int indexOf(Object o) {
if (o==null) {
for (int i=0; i<a.length; i++)
if (a[i]==null)
return i;
} else {
for (int i=0; i<a.length; i++)
if (o.equals(a[i]))
return i;
}
return -1;
}
public boolean contains(Object o) {
return indexOf(o) != -1;
}
}
这个和ArrayList是不同的东西,看下ArrayList
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
也就是说Array.ArrayList并没有实现诸如clear()等方法,固有错误报出
分享到:
相关推荐
`java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...
java.lang.UnsupportedOperationException是在 Android 中一种常见的异常,该异常通常发生在视图inflate过程中。该异常的产生是由于 Android 系统无法将某些类型的数据转换为Dimension类型所致。 问题解决办法 对于...
然而,有时在使用WebView时,可能会遇到一些错误,比如“java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes”。这个错误通常发生在尝试在一个具有高...
测试javassist 用于动态代码插入的字节码级别的类操作测试虚拟机参数-agentlib:jdwp = ... 根据您运行的 JVM,可能会出现以下错误:线程“HotSwap”中的异常 java.lang.UnsupportedOperationException:未实现架构更改
java.lang.UnsupportedOperationException: The user must supply a JDBC connection ``` **解决方案:** 为了解决这个问题,开发者应该在初始化Configuration对象时,指定Hibernate的配置文件路径,以便读取正确的...
java.lang.UnsupportedOperationException: This class does not support SAAJ 1.1 此异常表明WebLogic服务器不支持SAAJ 1.1标准。要解决这个问题,可以采取以下步骤: 1. 打开`startWebLogic.cmd`或`start...
首先,Java的异常类层次结构始于`java.lang.Throwable`,它是所有异常和错误的基类。`Throwable`有两个主要的子类:`Exception`和`Error`。`Exception`通常表示程序中可以预见的问题,可以通过`catch`或`throws`来...
- 使用该方法创建的`List`是不可变的,试图修改这个`List`会导致`UnsupportedOperationException`异常。 #### 4. 对象创建方法 - 创建Java对象的主要方式有四种:`new`操作符、序列化、反射和克隆。 - 其中,`new`...
java.util.ArrayList,而是 Arrays 的静态内部类 java.util.Arrays.ArrayList,该类继承自抽象类 java.util.AbstractList,但没有实现 add 方法,默认抛出 java.lang_UNSUPPORTEDOPERATIONEXCEPTION 异常。...
描述中提到的问题是尝试在后台声明一个Web服务,但在前台调用时抛出了`java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage`的异常。这通常意味着在处理...
在遇到异常时,如java.lang.UnsupportedOperationException和java.lang.NoSuchMethodException,通常表明了代码中可能存在API使用错误、框架配置不当或者依赖版本不一致等问题。例如,记录中的异常提示用户必须提供...
本文将总结阿里巴巴Java编码规范答案,涵盖多线程并行处理定时任务、数据库表命名、KV结构集合、依赖解析命令、变量和常量定义、线程安全、格式规约、数组使用、异常处理方式等多个方面。 1. 多线程并行处理定时...
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或...