`

java.io.NotSerializableException: java.util.ArrayList$SubList

阅读更多
错误信息:


原代码:
			if (null != dtoErrorDataSqlResult) {
				if (list.size() > 40) {
					dtoErrorDataSqlResult.setDatas(list.subList(20, 40));
				} else {
					dtoErrorDataSqlResult.setDatas(list);
				}

				addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
			}


修改后的代码:
			if (null != dtoErrorDataSqlResult) {
				if (list.size() > 40) {
					List<Map<String, String>> tmp = new ArrayList<>(list.subList(20, 40));
					dtoErrorDataSqlResult.setDatas(tmp);
				} else {
					dtoErrorDataSqlResult.setDatas(list);
				}

				addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
			}


看源码注释得知错误原因是:List.subList方法返回的只是一个视图,而ehcache写入磁盘需要的是实体,所以出现此问题!
  • 大小: 117.9 KB
分享到:
评论

相关推荐

    java 中序列化NotSerializableException问题解决办法

    Java 中序列化 NotSerializableException 问题解决办法 Java 中序列化 NotSerializableException 问题是 Java 开发中常见的问题之一。 NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不...

    7.7初始mybatis个人笔记.docx

    在【描述】中提到的问题,当你尝试启用二级缓存时,如果实体类没有实现`Serializable`接口,MyBatis在尝试序列化对象存储到缓存时会抛出`java.io.NotSerializableException`。这是因为Java的序列化机制要求可序列化...

    aesjava源码-THIS-.-IS-GREAT-:////IntelliJIDEA从.class文件重新创建的源代码//(由Fernflo

    导入java.io.NotSerializableException; 导入java.io.ObjectStreamException; 导入java.io.Serializable; 导入java.security.AccessController; 导入java.security.AuthProvider; 导入java.security....

    struts2 依赖核心包 --xwork 源文件

    Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发人员提供了构建高效、可维护性高的Web应用的工具。XWork是Struts2的核心组件,它负责处理Action的业务逻辑和控制流程...

    java自动序列化

    3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...

    java session

    java.io.NotSerializableException: xxxxxx ``` 3. **解决方法** - **方法一**: 配置Tomcat不在关闭时保存Session数据。 在`server.xml`文件中的`&lt;Context&gt;`标签下添加以下内容: ```xml ...

    java中的序列号和反序列化.doc

    在Java中,要实现对象的序列化,类必须实现`java.io.Serializable`接口。这个接口没有任何方法,仅仅作为一个标记,告诉Java虚拟机(JVM)这个类是可序列化的。 有两种主要的序列化方式: 1. 实现`Serializable`...

    JAVA常见异常...........

    Java编程语言中,异常处理是程序健壮性的重要组成部分。当程序执行过程中遇到错误或特殊情况时,Java会抛出异常,这些异常分为两种主要类型:检查型异常(Checked Exceptions)和运行时异常(Runtime Exceptions)。...

    2010年SCJP标准题库

    9. **Java SE实用API**:涵盖java.util和java.text包中的类和接口,如日期和时间的处理、格式化、国际化等。 具体题目解析: - **QUESTION 1**:涉及对象的序列化。当一个实现序列化的类引用了未实现序列化的类时,...

    java中把对象转化为byte数组的方法.doc

    ### Java中将对象转换为byte数组的方法 在Java中,对象到byte数组的转换是一种常见的序列化技术,尤其是在网络通信、持久化存储等场景中。本文将详细介绍如何将一个Java对象转换为byte数组以及反向操作(即从byte...

    Java对象的深克隆与浅克隆详解.zip(wcb2003)

    可以使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`来实现: ```java public class MyClass implements Serializable { private MyObject reference; // ...其他属性和方法... public MyClass...

    OCJP题库JAVA考试

    在题目中,由于`Tree`类没有实现`Serializable`接口,所以在尝试序列化`Forest`实例时,会抛出`java.io.NotSerializableException`。 2. **对象的序列化与反序列化**:在问题2中,正确的序列化和反序列化代码是选项...

    Serialization:Java中的序列化

    Java还提供了`java.io.ObjectStreamClass`和`java.io.ObjectStreamConstants`等辅助类来处理序列化相关的元数据,以及`java.io.NotSerializableException`和`java.io.OptionalDataException`等异常,它们分别在对象...

    关于Java对象序列化您不知道的5件事Java开发Java

    Java对象序列化是Java开发中的一个重要概念,它允许我们将Java对象转换为字节流,以便存储、传输或在不同时间点恢复。以下是五个可能不为人知的关于Java对象序列化的知识点,这些知识点对于深入理解Java开发至关重要...

    2021-2022计算机二级等级考试试题及答案No.18807.docx

    不实现该接口会导致NotSerializableException。 8. Word选中段落:在Word中,快速选中整个段落可以通过在段内任意位置连续点击鼠标三次。 9. 树的根结点数目:一棵树的根节点数量总是1。 10. 头结点的目的:在...

    Java面试题,jsp&servlet面试题

    - **实现Serializable接口**:如果一个类需要序列化,那么这个类必须实现java.io.Serializable接口,否则序列化过程会抛出NotSerializableException。 7. **集合框架**: - **List和Set**:它们都继承自...

    2021-2022计算机二级等级考试试题及答案No.9392.docx

    2. `Serializable`接口:在Java中,如果要序列化一个对象,该对象必须实现`Serializable`接口。否则,使用`ObjectInputStream`和`ObjectOutputStream`时会出现`NotSerializableException`异常。 3. Internet在中国...

    SCJP认证考试题库1.pdf

    - **集合框架**:Java提供了丰富的集合类,如`ArrayList`、`LinkedList`、`HashSet`和`HashMap`等。泛型允许在集合中指定元素类型,增强代码安全性和可读性。 9. **Java SE 实用 API**: - **`DateFormat`类**:`...

    2021-2022计算机二级等级考试试题及答案No.3179.docx

    如果不实现此接口,尝试序列化时会抛出`NotSerializableException`异常。 2. **DOM**:DOM(Document Object Model)是一种用于表示XML和HTML文档的标准模型,它允许程序和脚本动态更新、添加、删除和改变元素和...

    2021-2022计算机二级等级考试试题及答案No.18292.docx

    12. **对象序列化**:在Java中,使用`ObjectInputStream`和`ObjectOutputStream`进行对象持久化时,对象必须实现`Serializable`接口,否则会抛出`NotSerializableException`异常。 13. **计算机字长**:字长为4个...

Global site tag (gtag.js) - Google Analytics