我正在使用一个从 jar 实现 Serializable 的类,为了确保不会出现与编译器相关的问题,我给了它一个 serialVersionUID
private static final long serialVersionUID = 123L;
然后我重新创建了 jar,但是现在当我在新 jar 中使用该类时,它给了我异常:
java.io.InvalidClassException: com.placeiq.piqhash.PIQDeviceId;本地类不兼容:流 classdesc serialVersionUID = 1568630193381428614,本地类 serialVersionUID = 123
所以我的问题是:
1、什么是流classdesc serialVersionUID?
2、怎么设置才能让两个serialVersionUID一致?
谢谢!
最佳答案
该类的序列化版本来自某个地方(在流中),它的序列版本 ID 为 1568……但它无法反序列化为您的类版本(本地类),即 123。
您需要弄清楚其他版本的来源。然后你需要使用你的新 jar,以及新版本的类(如果可以的话)。
一些可能的来源:
这不是一个详尽的 list 。
关于java - 我在哪里可以设置流 classdesc serialVersionUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18621398/