java.io.NotSerializableException异常的问题及解决

 更新时间:2023年12月18日 14:27:43   作者:神秘嘉宾吴彦祖  
这篇文章主要介绍了java.io.NotSerializableException异常的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java.io.NotSerializableException异常

先说解决方法再说原因

解决方法

报错信息会指示出问题的是哪个实体类,在该实体类的后面加上一句 “implements Serializable”

例如:

import java.io.Serializable;
public class User implements Serializable{
 
}

如果加了“implements Serializable”之后还是报错,你会发现报错信息里面指向的是你要序列化的类里面引用的其他实体类,所以实体类里面所有的实体类都需要加上 “implements Serializable” 。

原因

出现这个问题的时候应该是想要将 该实体类对象保存到某个地方,那么此时必须需要序列化;一个类只有实现了Serializable接口,它的对象才是可序列化的;

而访问这个类的源代码你会发现他什么也没有实现,其实就相当于一个标志位,它的作用只是能指明哪个类可以被实例化

(java对象不可序列化异常)java.io.NotSerializableException

java.io.NotSerializableException

要想一个对象时可序列化的,需要满足相应的要求:

   (1)该对象必须实现Serializable接口

   (2)需要提供一个全局常量serialVersionUID,其值任意

   (3)保证其内部的所有属性也必须是可序列化的(默认情况下基本数据类型和String类型是可序列化的)

例如,想使Person进行序列化操作:

 *对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取了这种二进制流,就可以恢复成原来的Java对象

*序列化:用ObjectOutputStream类保存基本类型数据或对象的机制

*反序列化:用ObjectInputStream类读取基本类型数据或对象的机制

*ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用jpa原生sql@Query操作增删改查

    使用jpa原生sql@Query操作增删改查

    这篇文章主要介绍了使用jpa原生sql@Query操作增删改查,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java不要再使用!=null判空了!

    Java不要再使用!=null判空了!

    这篇文章主要给大家介绍了关于Java不要再使用!=null判空的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java获取当前时间年月日的方法

    Java获取当前时间年月日的方法

    这篇文章主要为大家详细介绍了Java获取当前时间年月日的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • .properties文件读取及占位符${...}替换源码解析

    .properties文件读取及占位符${...}替换源码解析

    本篇文章主要介绍了.properties文件读取及占位符${...}替换源码解析的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • Java中的逻辑结构详解

    Java中的逻辑结构详解

    这篇文章主要介绍了Java中的逻辑结构详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 基于SpringBoot和MongoDB实现实时分析和日志处理功能

    基于SpringBoot和MongoDB实现实时分析和日志处理功能

    实时分析和日志处理在现代应用程序开发中扮演着重要的角色,MongoDB是一个非常流行的NoSQL数据库,其高性能和灵活性使其成为实时分析和日志处理的理想选择,本文将介绍如何使用 Spring Boot 和 MongoDB 实现实时分析和日志处理的功能
    2023-06-06
  • 一篇文章带你了解java接口与继承

    一篇文章带你了解java接口与继承

    这篇文章主要介绍了Java接口和继承操作,结合具体实例形式分析了Java接口和继承与使用的相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2021-08-08
  • Java CompletableFuture实现原理分析详解

    Java CompletableFuture实现原理分析详解

    CompletableFuture是Java8并发新特性,本文我们主要来聊一聊CompletableFuture的回调功能以及异步工作原理是如何实现的,需要的可以了解一下
    2022-09-09
  • Java集合框架之List ArrayList LinkedList使用详解刨析

    Java集合框架之List ArrayList LinkedList使用详解刨析

    早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同
    2021-10-10
  • 利用Spring Boot操作MongoDB的方法教程

    利用Spring Boot操作MongoDB的方法教程

    mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多,下面这篇文章主要给大家介绍了利用Spring Boot操作MongoDB的方法教程,需要的朋友可以参考下
    2017-05-05

最新评论