`
noble510520
  • 浏览: 56914 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

NotSerializableException解决方法

 
阅读更多

NotSerializableException

问题描述:
想要写入对象的时候的时候回抛出NotSerializableException:类名

原因:
写入的对象没有序列化,即没有实现java.io.Serializable接口

解决方法:
将要被写出对象的类序列化,可以不设置序列号,这时由系统自动设置,也可以自己设置序列号
设置方法:

 private static final long serialVersionUID = xxxxxx;////xxxx看自己喜欢

系统自动生成的序列号serialVersionUID是根据类名,接口名,方法和属性等来生成的
所以只要更改了类中的属性、方法、各种名称就会使序列号发生变化,这时想要读取未改动类的时候的本地对象就会失败,因为读取的时候和卸写入的时候序列号不一样。

所以不想修改类之后这么麻烦,就会定义一个序列号

注意:
一、被static和transient(瞬间)修饰的字段或方法都是不被序列化的,也就是保存到本地和从本地读取的时候都不会操作这个东西

二、类中引用到的其他类的对象也需要序列化,比如如果类中用了ObjectOutputStream的话,会抛出NotSerializableException:java.io.ObjectOutputStream,意思是类ObjectOutputStream没有序列化

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    Java 常见问题解决集合.docx

    ### Java常见问题及解决方案 #### 一、编译错误 **1.1 问题:** "cannot find ...这些只是Java开发者在日常工作中可能遇到的部分问题及解决方法。针对不同的项目场景,具体的解决方案可能还需要根据实际情况灵活调整。

    Java中常见的异常以及解决方案

    ### Java中常见的异常及其解决方案 ...这些异常在Java开发中非常常见,理解它们的原因和解决方法对于编写健壮的应用程序至关重要。通过适当的预防措施和错误处理,可以有效地避免这些异常的发生。

    7.7初始mybatis个人笔记.docx

    解决方法是在`pom.xml`中添加资源配置,确保使用UTF-8编码: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-resources-plugin &lt;version&gt;2.6 &lt;encoding&gt;UTF-8 ``` 6. **SQL...

    2010年SCJP标准题库

    解决方法是使所有参与序列化的类都实现`Serializable`接口。 - **QUESTION 2**:关于反序列化。在反序列化过程中,需要按照对象的结构顺序从输入流中读取数据。正确的方法是按顺序读取两个整数,即选项D。 - **...

    spring整合quartz常见问题

    两者结合能够提供灵活、高效的任务调度解决方案。 #### 二、常见问题及解决方案 ##### 1. 对于`org.quartz.jobStore.useProperties=true` **问题描述**: 设置此参数是为了指示JDBCJobStore将所有JobDataMaps中的...

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

    源代码通常包含类定义、方法实现、注释以及相关的配置文件,这有助于开发者理解和扩展框架的功能。 在XWork中,Action类是业务逻辑的主要载体,每个Action都对应一个用户请求。Action类可以被Struts2的配置文件指定...

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

    解决方法是使需要序列化的类实现`Serializable`接口。 ```java public class SerializableClass implements Serializable { // 类的属性和方法 } ``` 6. **UnsupportedEncodingException**:不支持的编码异常,当...

    java session

    3. **解决方法** - **方法一**: 配置Tomcat不在关闭时保存Session数据。 在`server.xml`文件中的`&lt;Context&gt;`标签下添加以下内容: ```xml ``` 这样配置可以避免在服务器关闭时保存Session数据,从而...

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

    注意,所有被克隆的对象(包括引用的对象)都需要实现`Serializable`接口,否则会抛出`NotSerializableException`。 ### 比较与选择 浅克隆适用于只需要简单复制对象自身属性,不关心引用对象的情况,因为它效率较...

    jboss4.0.5-GA在使用RMI时的大坑

    标题中的“jboss4.0.5-GA在使用RMI时的大坑”指的是在使用JBOSS 4.0.5 GA版本时,如果涉及到远程方法调用(Remote Method Invocation, RMI)可能会遇到的一些常见问题或陷阱。在描述中提到了一个博客链接,虽然没有...

    反序列化作用

    a) 序列化对象时,需要确保对象类及其成员变量都是可序列化的,否则会抛出NotSerializableException异常。 b) 如果类中包含对象的引用,序列化时会递归地序列化所有引用的对象。 c) 在设计需要序列化的类时,应考虑...

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

    为防止这种情况,可以使用`ObjectOutputStream`的`defaultWriteObject()`方法来禁止默认的序列化行为,或者使用`NotSerializableException`来阻止不应序列化的类。 6. **`transient`关键字** `transient`关键字...

    java自动序列化

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

    Java将对象写入文件读出_序列化与反序列化的实例

    为了解决这个问题,可以将该引用标记为transient,从而跳过该成员变量的序列化。 Java对象序列化与反序列化是一种非常有用的机制,用于对象的存储和传输。通过使用Serializable接口和ObjectOutputStream/...

    java程序员考试试卷

    如果类未实现此接口而尝试进行序列化操作,则会抛出`NotSerializableException`异常。因此,本题中的正确选项是运行时抛出异常。 #### 题目2:反序列化问题 **题目描述**:插入哪段代码可以使这个类正确地进行序列...

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

    如果一个类没有实现这个接口,尝试序列化其对象时会抛出`NotSerializableException`。 3. **transient关键字**: Java提供了`transient`关键字来标记那些不应该被序列化的字段。当一个字段被声明为`transient`,...

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

    它不仅仅指查询方法、加工方法或排序方法,而是更广泛的概念,涵盖了解决问题的各种步骤和方法。因此,正确答案是 C. 解题方案的准确而完整的描述。 ### 6. WWW 的定义 WWW(World Wide Web)是一种基于超文本的...

    java序列化

    Java对象序列化技术正是为了解决这一需求而设计。 #### 二、Java对象序列化的原理 ##### 2.1 什么是Java对象序列化? Java对象序列化是一种将Java对象的状态转化为字节流的过程,使得对象可以被保存至磁盘文件、...

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

    1. 结构化程序设计:结构化程序设计是一种编程方法,它强调程序应由顺序、分支和循环三种基本结构组成,以保证程序的清晰性和可维护性。选项C正确,C++中,程序的模块化是通过类实现的。结构化程序设计不一定必须...

Global site tag (gtag.js) - Google Analytics