我有一个public类,它实现Serializable,它是由多个其他类扩展。只有那些子类曾经序列化过 – 永远不是超类。

超类定义了一个serialVersionUID。

我不知道是否重要,但它没有标记为私人,而是它只是有默认保护 – 你可能会说它是包保护

static final long serialVersionUID = -7588980448693010399L;

超类,也没有任何子类,但实现readObject或writeObject,并且没有一个子类有明确定义的serialVersionUID。我想在超类中定义的一个就足够了。

尽管所有这些,只要读回以前的序列化对象直到一个新的实例变量,一个List / ArrayList,以及一个新的方法添加到超类,并且一些私有实例变量添加到它的一个子类。

现在,当试图读回以前序列化的对象时,抛出异常。一个类似这样:

com.SomeCompany.SomeSubClass; local class incompatible: stream classdesc serialVersionUID = 1597316331807173261, local class serialVersionUID = -3344057582987646196

我假设这是由于默认serialVersionUID,因为我没有在任何子类中声明一个,因为现在已经更改,由于超类和一个子类的更改。

建议如何摆脱这种困境将不胜感激。我假设我需要实现readObject和writeObject,但除了调用defaultReadObject()和defaultWriteObject(),我不知道我需要做什么。我也不知道我是否需要添加serialVerisonUIDs到所有的子类,或者readObject和writeObject需要由每个子类实现,或者我可以只实现一次,假设我需要在超类中。

java 序列化 兼容_Java序列化 – java.io.InvalidClassException本地类不兼容相关推荐

  1. java序列化 反序列化_Java序列化– Java序列化

    java序列化 反序列化 Serialization in Java was introduced in JDK 1.1 and it is one of the important feature ...

  2. java string 反序列化_java序列化和反序列化

    引语: 平时我们在运行程序的时候,创建的对象都在内存中,当程序停止或者中断了,对象也就不复存在了.如果我们能将对象保存起来,在需要使用它的时候在拿出来使用就好了,并且对象的信息要和我们保存 时的信息一 ...

  3. java serializable用法_JAVA序列化Serializable及Externalizable区别详解

    序列化简介 Java 的对象序列化将那些实现 Serializable 接口的对象转换成一个字节序列,并能在之后将这个字节序列完全恢复为原来的对象. 这就意味着 Java 对象在网络上的传输可以不依赖 ...

  4. java序列化流_java 序列化流与反序列化流

    一 对象序列化流ObjectOutputStream ObjectOutputStream 将Java对象的基本数据类型和图形写入OutputStream.可以使用ObjectInputStream ...

  5. java list反序列化_java序列化与反序列化操作实例分析

    本文实例分析了java序列化与反序列化操作.分享给大家供大家参考,具体如下: 概述: Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程. ...

  6. java 序列化 例子_Java序列化和反序列化例子

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_502_1@ 编程之家小编现在分享给大家,也给大家做个参考.@H_502_1@ /** * 对象序列化与反序列化 * */ impor ...

  7. java序列化层数_java序列化详解

    一.java序列化与反序列化 序列化是指把java对象(属性)转换为字节序列的过程 反序列化是指把字节序列恢复为java对象的过程 二.为什么需要序列化和反序列化 首先网络通信都是二进制的形式在传输, ...

  8. java 序列化规范_Java序列化格式详解

    RPC的世界,由于涉及到进程间网络远程通信,不可避免的需要将信息序列化后在网络间传送,序列化有两大流派: 文本和二进制. 文本序列化 序列化的实现有很多方式,在异构系统中最常用的就是定义成人类可读的文 ...

  9. java protostuff 好处_Java 序列化框架性能对比(kryo、hessian、java、protostuff)

    简介: 优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Protostuff 速度快,基于protobuf 需静态编译 Protostuff-Ru ...

最新文章

  1. R语言ggplot2可视化将图像标题(title)居中显示实战
  2. 谈谈垃圾回收机制方式及内存管理
  3. 内核同步对性能的影响及perf的安装和简单的使用
  4. auto自动类型推断
  5. html中把句子往右边弄一点咋办,CSS上的左,中,右对齐方法,可以在一行上混合...
  6. 2018 年 Android 应用程序的发展趋势
  7. 时隔2月,我的第二篇
  8. Origami 用于Quartz 的免费的交互设计框架
  9. Java后端面试题总结一
  10. alisql 与mysql_【阿里云资讯】AliSQL 5.6.32 vs MySQL 5.7.15抢鲜测试-阿里云开发者社区...
  11. 微信小程序之上传图片功能
  12. 安卓手游辅助分析与开发!五步搞定Android开发环境部署,深度好文
  13. c#模拟看板控件_C#TIPTOP电子看板
  14. yolomouse怎么用_YoloMouse(游戏鼠标光标修改工具)_YoloMouse(游戏鼠标光标修改工具)官方版下载 - 键盘鼠标 - 绿软家园...
  15. Irrlicht Engine 相关信息——一些常见问题和解答
  16. Practical Full Resolution Learned Lossless Image Compression
  17. 关于const的拙见
  18. Chromium-Dev中一些英文缩写
  19. PRD设计的实施方法论
  20. C# 委托及各种写法

热门文章

  1. 单点登录原理与简单实现【转载】
  2. jquery判断对象是否存在
  3. imx6. android6.0经常修改或者用到的目录(未完)
  4. css案例学习之并集选择器
  5. Esfog_UnityShader教程_UnityShader语法实例浅析
  6. USB 3.0存储产品CeBIT集中展示
  7. 测试低频噪音软件,设计制作并验证0.1Hz10Hz超低频微弱噪音检测放大器要点
  8. linux安装控制台驱动,linux设备驱动之控制台驱动
  9. python的knn算法list_【风马一族_Python】 实施kNN算法
  10. 如何设置打印的时候不加上页面链接_电子面单史上最全打印问题集合--【拼点管家软件】...