- 浏览: 7339846 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常:
常见集合如下:
private List<VacationCategory> vacationcategorys = Collections.emptyList();
报错误如下:
-- Encapsulated exception ------------\
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:131)
at java.util.AbstractList.add(AbstractList.java:91)
at com.unutrip.callcenter.vacation.web.condition.VacationOrderConditionConvertor.setProductStyle(VacationOrderConditionConvertor.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
..............................
JDK API解释如下:
java.lang.CloneNotSupportedException
不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
在网上查一下原因是因为部分集合类型一样但是缺少部分方法或不支持。
如特殊情况如下:
(1)常常使用Arrays.asLisvt()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:
Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。
解决方法是使用Iterator,或者转换为ArrayList
List arrayList = new ArrayList(list);
(2)
private List<VacationCategory> vacationcategorys = Collections.emptyList();
执行remove,add等method时,抛出此异常,本人将上述代码改为:
private List<VacationCategory> vacationcategorys = new ArrayList<VacationCategory>();
没有此错误,于是我查看一下源代码:
源码如下:
此类在Collections的类中:
/**
* The empty list (immutable). This list is serializable.
*
* @see #emptyList()
*/
public static final List EMPTY_LIST = new EmptyList();
/**
* Returns the empty list (immutable). This list is serializable.
*
* <p>This example illustrates the type-safe way to obtain an empty list:
* <pre>
* List<String> s = Collections.emptyList();
* </pre>
* Implementation note: Implementations of this method need not
* create a separate <tt>List</tt> object for each call. Using this
* method is likely to have comparable cost to using the like-named
* field. (Unlike this method, the field does not provide type safety.)
*
* @see #EMPTY_LIST
* @since 1.5
*/
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
/**
* @serial include
*/
private static class EmptyList
extends AbstractList<Object>
implements RandomAccess, Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8842843931221139166L;
public int size() {return 0;}
public boolean contains(Object obj) {return false;}
public Object get(int index) {
throw new IndexOutOfBoundsException("Index: "+index);
}
// Preserves singleton property
private Object readResolve() {
return EMPTY_LIST;
}
}
EmptyList此集合竟然没有相应的add,remove等方法,哭了,呜呜...........
~~~~(>_<)~~~~
有上述几个实例看在集合中报此错的原因为缺少部分方法的原因或不支持造成的。
发表评论
-
【转】Coherence Event Processing by using Map Trigger Feature
2013-06-25 14:02 2084This article shows how to proc ... -
【转】Distributed Data Management in Oracle Coherence
2013-06-25 13:55 1894This article shows how to prov ... -
【转】How to distribute Spring Beans by using Coherence
2013-06-21 17:24 1972转载自: http://www.onli ... -
关于H2使用的那些事
2012-12-14 16:40 27222在项目中采用H2作为工 ... -
【转】ConcurrentHashMap之实现细节
2012-12-10 14:32 1776Conc ... -
【转】Java并发编程J.U.C之Condition
2012-12-10 13:14 1914转载自http://www.golde ... -
【转】Java并发编程J.U.C之锁的获取与释放
2012-12-10 13:07 1617转载自 http://www.g ... -
【转】JUC 基础内容概述
2012-12-10 13:01 2050Concurrent Programming in Jav ... -
【转】Java并发编程之ConcurrentHashMap
2012-12-10 12:56 1778ConcurrentHashMap Conc ... -
【转】单例模式完全解析
2012-12-07 12:58 1710本文将探讨单例模式的各种情况,并给出相应的建议。 单例模式应该 ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2954转载自 http://rdc.taobao.c ... -
【转】Spring 事务管理高级应用难点剖析:
2012-12-04 16:29 2231转载自 http://www.ibm.com/deve ... -
【转】Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式
2012-12-04 15:11 4484转载自 http://downpour.ite ... -
Hibernate延迟加载和OpenSessionInView
2012-12-03 17:13 3172ThreadLocal& ... -
关于ThreadLocal分析和总结
2012-12-03 15:56 1864什么是ThreadLocal? ... -
【转】java线程阻塞中断和LockSupport的常见问题
2012-12-03 13:30 1793转载自 http://www.iteye ... -
java 中 ReentrantReadWriteLock的读锁和写锁的使用
2012-11-30 17:14 10441jdk文档中关于Reentr ... -
java 多线程中Semaphore信号量
2012-11-30 15:39 3755Semaphore信号量: 可以维护当前 ... -
Java 文件锁的使用
2012-11-30 13:21 4438多线程-内部锁、重进入 多线程 ... -
【转】线程安全与锁优化
2012-11-29 16:17 1890转载自http://xussen.iteye.com/blo ...
相关推荐
`java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...
java.lang.UnsupportedOperationException是在 Android 中一种常见的异常,该异常通常发生在视图inflate过程中。该异常的产生是由于 Android 系统无法将某些类型的数据转换为Dimension类型所致。 问题解决办法 对于...
项目中碰到的,记录一下解决方案
C选项的`list.remove("java")`只会删除第一个匹配的"java",D选项的`list.removeAll("java")`会抛出`UnsupportedOperationException`,因为ArrayList不支持直接用字符串删除元素,需要传入一个集合。 3. **统计字符...
Java集合框架是Java编程语言中的一个核心特性,它提供了一组接口和类,用于存储和操作对象的集合。在这个主题中,我们将深入探讨ArrayList,这是一个常见的集合实现,以及与之相关的异常处理。 ArrayList是Java中`...
在Java编程语言中,`UnsupportedOperationException` 是一个标准的运行时异常,通常在不支持特定操作的情况下抛出。这个错误通常表明某个方法被调用,但该方法在当前上下文中并未实现或者不适用。让我们深入了解一下...
但是你在try里调用了一个或多个可能抛出异常的方法,或者自己抛出异常。这意味着可能无法到达try的末尾。因此,将清理资源的代码放入Finally中,或者使用Try-With-Resource语句。 2. 使用Try-With-Resource语句 ...
Java集合类是Java编程语言中不可或缺的一部分,它们用于存储、管理和操作对象。面试时,面试官经常通过提问关于集合类的问题来评估候选人的基础知识和实际经验。以下是一些常见的Java集合类面试题及其详细解答: 1....
在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力。Java集合框架由一系列接口和实现这些接口的类组成,位于`java.util`包...
在处理集合时,经常需要将一个集合的内容转移到另一个集合中,或者从一个较大的对象集中移除一个较小的对象集。此时,许多开发者可能会选择通过迭代的方式来添加或移除元素,但这并不是一个高效的方法。每次添加或...
Java编程语言中,异常处理是程序健壮性的重要组成部分。异常是程序运行时遇到的问题,它们通常表示非正常情况或错误。Java提供了丰富的异常体系,包括标准的Java异常类和自定义异常。以下是一些主要的Java异常及其...
只读集合是Java编程中不可或缺的一部分,理解其工作原理对于编写健壮和安全的代码至关重要。详细指导将涵盖各种使用场景、最佳实践以及可能遇到的问题和解决方案,帮助你成为一名更优秀的Java开发者。
然而,有时在使用WebView时,可能会遇到一些错误,比如“java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes”。这个错误通常发生在尝试在一个具有高...
例如,如果你定义了一个不允许修改的集合类,但在该集合上尝试添加元素时,就可以抛出此异常。 #### 三、异常处理 在编写Java程序时,合理地处理异常是非常重要的。以下是一些常见的异常处理方式: 1. **捕获并...
在Java编程领域,集合类是面试中不可或缺的一部分,尤其对于大型公司来说,它们通常会深入探究候选人在集合类的理解和应用能力。Java集合框架是Java SE API中的核心部分,它提供了用于存储和操作对象的数据结构和...
在Java集合框架中,`Collections`工具类提供了一个`reverse()`方法,可以用来反转List类型的集合。例如,如果你有一个ArrayList或LinkedList,你可以直接调用`Collections.reverse(list)`来反转集合中的元素顺序。 ...
开发中碰到的报错,问题已解决,写个文档记录一下这个问题及解决方案