0

我有一个标准程序,其中列出了人们在面试新成员时使用的面试问题。问题是硬编码的,面试官会记录问题的答案。提交时的答案被添加到一个对象(称为 iQuestions)中,然后存储在服务器上的 .txt 文件中。好吧,时代变了,现在我们想在列表中添加其他问题,这很容易做到,但是当我更改服务器和客户端中的 iQuestions 时,旧记录会因“序列化对象”错误(对象保存的与我试图从中获取的程序中的对象不同。最简单的方法是什么?

4

1 回答 1

0

这就是没有在 Serializable 类中定义的静态 serialVersionUID 可能会在以后烧毁您的地方。正如您所说,您的可序列化类的新版本与用于保存数据的类不同,因此“自动”反序列化无法确定如何将数据读回新版本的类(http: //www.javapractices.com/topic/TopicAction.do?Id=45)。如果您仍然可以访问原始 iQuestions 类,您可以考虑编写一个转换器,使用原始类对问题进行反序列化,然后将相关数据写入另一种格式(也许使用数据库存储问题会更可靠、更容易为了简单起见,在文本文件中更新或存储为 JSON?)。

于 2012-07-30T18:55:06.373 回答