是否有覆盖java系统类的serialVersionUID?
错误示例: java.io.InvalidClassException:java.util.Date;本地类不兼容:stream classdesc serialVersionUID = 7523895402267505689,本地类serialVersionUID = 7523967970034938905
客户端和服务器具有不同版本的java。但由于我知道类是相同的,我希望能够使用序列化。
答案 0 :(得分:1)
你知道这些类是相同的。它们可能是相同的,但如果版本号发生了变化,那么内部的任何内容都可能发生变化。
您需要将数据序列化为其他内容(如字符串)并在另一端反序列化。
答案 1 :(得分:0)
Peter Newton发现的Q&A的第一个答案是有前景的。基本上,示例代码重载了从流中读取类描述符并调整序列版本ID的方法。如果您为多个类执行此操作,则需要相应地调整代码。
但请注意,这是一件相当危险的事情。如果类的传输表示不兼容,则最终可能会出现损坏的对象而没有任何警告。