【问题标题】:How to get rid of InvalidClassException SerialVersionUID?如何摆脱 InvalidClassException SerialVersionUID?
【发布时间】:2012-11-15 23:00:15
【问题描述】:

我在数据库中保存了一个 java 对象,几天后我更改了我的 jre 版本。 现在,当我尝试读取同一个对象时,出现以下异常:

Exception in thread "main" java.io.InvalidClassException:
SerializeMe; local class incompatible: stream classdesc
serialVersionUID = -6377573678240024862, local class serialVersionUID = -8204757486033751616

我怎样才能摆脱这个,我怎样才能得到保存的对象?

请帮帮我。

【问题讨论】:

  • 这就是为什么你应该总是顺便明确定义你的 SUID。

标签: java serialization serialversionuid


【解决方案1】:

如果你可以影响这个类的源代码并且 JRE 只是改变的东西,你很可能仍然可以反序列化由旧 JVM 序列化的对象。只需在要反序列化的类中定义以下字段:

private static final long serialVersionUID = -6377573678240024862L;

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 2014-01-28
    • 2013-10-31
    • 2020-10-19
    • 2019-12-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多