NotSerializableException解决方法NotSerializableException

NotSerializableException

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

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

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

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏精讲JAVA

TCP的长连接与短连接的含义与区别(附Java代码实现)

关于连接 TCP/IP通信方式分为连接与非连接型通讯方式 TCP:TCP是一种可靠通信,每次通信需要建立一个专门的通信链路 UDP:UDP通信是一种无连接方式,...

5.7K70
来自专栏魂祭心

原 c# 参数约束原理

38690
来自专栏岑玉海

hbase源码系列(八)从Snapshot恢复表

在看这一章之前,建议大家先去看一下snapshot的使用。这一章是上一章snapshot的续集,上一章了讲了怎么做snapshot的原理,这一章就怎么从snap...

30960
来自专栏MasiMaro 的技术博文

VC++ 崩溃处理以及打印调用堆栈

一般当程序发生异常时,用户代码停止执行,并将CPU的控制权转交给操作系统,操作系统接到控制权后,将当前线程的环境保存到结构体CONTEXT中,然后查找针对此异常...

45740
来自专栏ImportSource

并发编程-加锁机制

本文翻译自《Java Concurrency ?In ?Practice》,定期放送 ,让你利用碎片时间悄悄的看了一本书! 我们的文章是系列的。所以先请允许...

32980
来自专栏个人分享

SparkConf加载与SparkContext创建(源码阅读二)

  1、下面,开始创建BroadcastManager,就是传说中的广播变量管理器。BroadcastManager用于将配置信息和序列化后的RDD、Job以及...

14820
来自专栏python3

习题13:参数,解包,变量

在第三行,有一个"import"语句,这是你将python的功能引入你的脚本方法,python不会一下子将所有的功能都给你,而是让你需要什么就调用什么,这样可以...

11850
来自专栏大内老A

WCF技术剖析之十一:异步操作在WCF中的应用(下篇)

说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作在WCF中的应用(上篇)),我们在来谈谈服务端如何通过异步的方式为服务提供实现。在定义服务契约的时...

22790
来自专栏机器学习从入门到成神

各大公司Java后端开发面试题总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

41620
来自专栏偏前端工程师的驿站

JAVA魔法堂:读取.properties配置文件

一、前言                                 Java工程中想log4j、数据库连接等配置信息一般都写在.properties文件中...

24150

扫码关注云+社区

领取腾讯云代金券