`

关于java.lang.UnsupportedOperationException异常

    博客分类:
  • Java
 
阅读更多
使用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异常(csdn)————程序.pdf

    `java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...

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

    java.lang.UnsupportedOperationException是在 Android 中一种常见的异常,该异常通常发生在视图inflate过程中。该异常的产生是由于 Android 系统无法将某些类型的数据转换为Dimension类型所致。 问题解决办法 对于...

    Android webveiw 出现栈错误解决办法

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

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

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

    hibernate_常见问题集锦.doc

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

    cxf冲突_0001

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

    Java 基础常见知识点&amp;面试题总结(下),2022 最新版!.doc

    首先,Java的异常类层次结构始于`java.lang.Throwable`,它是所有异常和错误的基类。`Throwable`有两个主要的子类:`Exception`和`Error`。`Exception`通常表示程序中可以预见的问题,可以通过`catch`或`throws`来...

    牛客网Java专项50题详解

    - 使用该方法创建的`List`是不可变的,试图修改这个`List`会导致`UnsupportedOperationException`异常。 #### 4. 对象创建方法 - 创建Java对象的主要方式有四种:`new`操作符、序列化、反射和克隆。 - 其中,`new`...

    详解Java 集合类 List 的那些坑

    java.util.ArrayList,而是 Arrays 的静态内部类 java.util.Arrays.ArrayList,该类继承自抽象类 java.util.AbstractList,但没有实现 add 方法,默认抛出 java.lang_UNSUPPORTEDOPERATIONEXCEPTION 异常。...

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

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

    ssh 学习笔记

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

    阿里巴巴Java编码规范答案.docx

    本文将总结阿里巴巴Java编码规范答案,涵盖多线程并行处理定时任务、数据库表命名、KV结构集合、依赖解析命令、变量和常量定义、线程安全、格式规约、数组使用、异常处理方式等多个方面。 1. 多线程并行处理定时...

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

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

Global site tag (gtag.js) - Google Analytics