java.lang.UnsupportedOperationException
2016-07-29 18:43
309 查看
代码:
[java] view
plain copy
print?
public static void main(String[] args) {
String[] arr ={"a","b","c"};
List<String> list = Arrays.asList(arr);
list.add("d");
list.add("e");
}
运行结果:
[html] view
plain copy
print?
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
at java.util.AbstractList.add(AbstractList.java:91)
at com.cn.test.main(test.java:11)
修改方法:
List arrayList =new ArrayList(a);
例如:
[java] view
plain copy
print?
public static void main(String[] args) {
String[] arr ={"a","b","c"};
List<String> list = Arrays.asList(arr);
List arrList = new ArrayList(list);
arrList.add("d");
arrList.add("e");
}
原因:
在使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList
override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。
原创不易,参考文件:http://blog.csdn.net/thunderous/article/details/3693362
[java] view
plain copy
print?
public static void main(String[] args) {
String[] arr ={"a","b","c"};
List<String> list = Arrays.asList(arr);
list.add("d");
list.add("e");
}
运行结果:
[html] view
plain copy
print?
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
at java.util.AbstractList.add(AbstractList.java:91)
at com.cn.test.main(test.java:11)
修改方法:
List arrayList =new ArrayList(a);
例如:
[java] view
plain copy
print?
public static void main(String[] args) {
String[] arr ={"a","b","c"};
List<String> list = Arrays.asList(arr);
List arrList = new ArrayList(list);
arrList.add("d");
arrList.add("e");
}
原因:
在使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList
override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。
原创不易,参考文件:http://blog.csdn.net/thunderous/article/details/3693362
相关文章推荐
- Java 中基本类型和字符串之间的转换
- java xls文件数据导入
- spring实现读写分离
- java xls文件数据导入
- Spring工作原理
- java.util.Collections.max()方法实例
- Maven搭建SpringMVC+Mybatis项目详解
- Spring动态切换多数据源解决方案
- Eclipse快捷键汇总
- Eclipse版本整理
- Eclipse如何快速修改包名及工程名
- Quartz使用-入门使用(java定时任务实现)
- Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器
- JAVA(十一)java面向对象5-继承
- Eclipse下svn的创建分支/合并/切换使用
- Java 中基本类型和包装类之间的转换
- Java并发编程二:Callable Future
- Thrift-java实例
- 生产者-消费者模型的Java实现
- Java 中的包装类