java.lang.UnsupportedOperationException(源码学习 Util包 Arrays)
来源:互联网 发布:网络安全教育感想 编辑:程序博客网 时间:2024/06/04 19:37
String[] b={"1","2","3"};List<String> list = Arrays.asList(b); list.add("4");
有些人想要进行上面的操作,结果会出现这个错误
首相来看一下Arrays 这个asList方法的代码的实现
public static <T> List<T> asList(T... a) {return new ArrayList<T>(a);//看下面的ArrayList的定义 } /** * @serial include */ 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; } }
因此我们发现通过asList转换成的list并不能进行添加删除操作
- java.lang.UnsupportedOperationException(源码学习 Util包 Arrays)
- java util包学习(4) Arrays 源码分析
- arrays.aslist() 方法 java.lang.UnsupportedOperationException
- Arrays.asList() 出现java.lang.UnsupportedOperationException
- Arrays.asList()引起的java.lang.UnsupportedOperationException
- Arrays.asList java.lang.UnsupportedOperationException 异常
- java.lang.UnsupportedOperationException at java.util.AbstractList
- java.lang.UnsupportedOperationException at java.util.AbstractList
- java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException
- java.lang.UnsupportedOperationException at java.util.AbstractList
- JDK源码学习--java.util.Arrays
- Java源码---java.util.Arrays
- Arrays.asList(strArray)转换为List,执行remove(),报异常:java.lang.UnsupportedOperationException深究
- 关于Arrays.asList()报java.lang.UnsupportedOperationException异常分析
- Arrays.asList()使用---导致java.lang.UnsupportedOperationException分析
- 使用Arrays.asList时出现异常 java.lang.UnsupportedOperationException
- 环信: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException
- android studio java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException
- c语言的内存分配
- 如何在ppt中带走自己的字体
- 如何将演示文稿转换为WORD文档
- "无法删除文件夹,目录不是空的"解决办法
- 删除IE浏览器和工具栏里的多余图标
- java.lang.UnsupportedOperationException(源码学习 Util包 Arrays)
- POJ 2318 TOYS(叉积+二分)
- QQ群设置里的“不提示消息只显示数目”与“接收不提示消息”的区别
- 关于malloc的注意几点
- 设计极其糟糕的select函数
- 输入法不见解决办法
- Qt错误:'(QMessageBox::Icon)1u' cannot be used as a function
- 任务管理器进程中用户名为空解决办法
- 改变Windows 2003登录方式