我已经编译并打包了 Java 应用程序中的各个项目,通过 Eclipse 自动为从 Serialized 派生的所有类生成了 serialVersionUID。
我阅读了此问题的答案 question ,并验证了serialVersionUids都是private static final long
。
尽管如此,当我尝试运行时,我收到了这样的错误:
java.io.InvalidClassException: com.acme.product.Widget;本地类 不兼容:流classdesc serialVersionUID = 5226096973188250357,本地 类serialVersionUID = -5432967318654384362
我错过了什么?
最佳答案
您可能遇到类路径问题,您的程序正在解析该类的较旧的不兼容版本,该版本的serialVersionUID 值不同。
或者正在加载的序列化对象是用该类的其他版本序列化的,但现在不可用。
关于java - SerialVersionUID 为 "private static final long"仍然会出现 InvalidClassException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2725010/