0

我有一个Pilot类,以及该类的一个实例:bobThePilot.

我序列化为bobThePilotaString并将其复制到我的硬盘上。然后我创建一个新项目并重新创建Pilot类(与以前完全相同)....

然后我newBobThePilot通过反序列化从磁盘获取的字符串在这个新项目中创建。但它失败了。每个人都说这是因为一个名为 的东西serialVersionUID

是否有可能做到这一点(在不同的类中序列化和反序列化(尽管完全相同的类)?如果是这样,怎么做?

谢谢。

德:

  1. 将 serialVersionUID 属性添加到我们的序列化类示例:
    private static final long serialVersionUID = 1L;
  2. implements serializable与我们的序列化类相关的所有类

4

2 回答 2

0

如果您不输入序列版本 id,序列化运行时将根据类的各个方面为该类计算默认的 serialVersionUID 值。即使类相同,不同版本的 JDK 也可以创建不同的 serialversionuid。

于 2014-07-01T21:36:04.847 回答
0

但它失败了。

失败了怎么办?

每个人都说这是因为一个名为 serialVersionUID 的东西。

除非错误消息这么说。更可能是因为您使用 String 作为二进制数据容器的原始错误。它不是。只写实际的字节,不要通过字符串往返它们。

是否可以这样做(在不同的类中序列化和反序列化

不。

于 2014-07-01T21:40:55.630 回答