不同的java版本会创建不同的serialVersionUID吗?

时间:2016-05-16 11:37:00

标签: java serialization version

我已将我的java版本从1.6升级到1.8。当我尝试在weblogic(12c)中部署我的项目时,我遇到了错误。

  

java.io.InvalidClassException:org.springframework.beans.PropertyAccessException;本地类不兼容:stream classdesc serialVersionUID = -5171479712008793097,本地类serialVersionUID = 736080306599024264

我是否需要重新生成使用java 1.6版创建的serialVersionUID?

请帮忙

谢谢,

拉​​吉

1 个答案:

答案 0 :(得分:1)

是的,编译器版本很重要。 Serializable Javadoc说(部分)

  

如果可序列化类没有显式声明serialVersionUID,则序列化运行时将根据类的各个方面计算该类的默认serialVersionUID值,如Java(TM)对象序列化规范中所述。但是,强烈建议所有可序列化类都显式声明serialVersionUID值,因为默认的serialVersionUID计算对类细节高度敏感,这些细节可能因编译器实现而异,因此可能导致意外{{1在反序列化期间。