当前位置: 首页 > 知识库问答 >
问题:

如何用不同的serialVersionUID反序列化对象

平羽
2023-03-14

共有1个答案

甄阳朔
2023-03-14

您可以将serialVersionUID设置为任何需要的值(预期值与实际值通常在错误消息中看到)。把字段像

   private static final long serialVersionUID = 1L;

(将1替换为旧值),您将能够读取您的旧数据。

如果您需要同时读取新的和旧的格式,而它们实际上有些不同,最好给新版本的类一个新的名称。如果leagacy类出现在流中,使用resolveObject将旧格式转换为新格式。

 类似资料:
  • 我像这样接收JSON 当然,我实现了包含所有字段和类的类Track、Album和Playlist 顺便说一句,我不能改变JSON。所以我需要一个代码来解析它。

  • 问题内容: 有没有办法确定序列化Java对象的生成? 问题是我序列化了一个对象而没有明确指定。现在,反序列化过程抱怨类不兼容。但是,我并没有以使其不兼容的方式更改类。因此,我假设在类中指定足够了,因为它存储在对象数据中。为此,我需要从序列化数据中读取。 问题答案: 您可以通过扩展ObjectInputStream来做到这一点: 我相信可以通过替换方法返回的描述符来读取所有序列化的数据,但是我还没有

  • 问题内容: 我有一个问题。我想使用JAXB将一个对象转换为另一个对象。就像在中,我有一个class 和另一个class ,它们都有相同的参数,实际上都是相同的(复制粘贴),但是包不同。我想使用进行它们之间的转换。 怎么做,请帮帮我。 问题答案: 您可以执行以下操作。 注意: 不需要利用JAXBSource将数据具体化为XML。 它在对象模型上不需要任何注释。 com.home.Student co

  • 嗨,我有LogEventObject在客户端用于记录事件,我想使用REST API将其发送到服务器。我将LogEventObject转换为json字符串,并通过REST将其作为有效载荷发送。在服务器端,我使用Groovy,当我尝试做对象apper.read值()时,我得到以下错误。 com.fasterxml.jackson.databind.JsonMappingExc0019:找不到非具体的集

  • 有一个类实现,但在第一个版本中没有定义。在下一个版本中,我提供了。 现在的问题是,每当我试图反序列化之前存储的对象时,都会出现错误: 静态最终长serialVersionUID=4061053075992556495L;但需要com.example.android.user:静态final long serialVersionUID=-1079331593441085712L;

  • 我该怎么做才能使这件事如我所愿?。谢谢 JSON对象示例列表 示例JSON对象: null 忽略不存在json字段的反序列化错误,但问题仍然存在。 示例:对象反序列化器