我有一个标准程序,其中列出了人们在面试新成员时使用的面试问题。问题是硬编码的,面试官记录问题的答案。提交时的答案将添加到对象(称为iQuestions),然后存储在服务器上的.txt文件中。井时间改变了,现在我们想在列表中添加其他问题,这很容易做到,但是当我更改服务器和客户端中的iQuestions时,旧记录会弹出“序列化对象”错误(对象)保存的内容与我想要获取的程序中的对象不同。最简单的方法是什么?
答案 0 :(得分:0)
这是没有在Serializable类中定义的静态serialVersionUID可以在以后刻录你的地方。正如您所述,可序列化类的新版本与用于保存数据的版本不同,因此“自动”反序列化无法确定如何将数据读回到新版本的类中({{ 3}})。如果您仍然可以访问原始的iQuestions类,您可以考虑编写一个转换器,使用原始类对问题进行反序列化,然后将相关数据写入另一种格式(可能使用数据库存储问题会更可靠,更容易为简单起见,在文本文件中更新或存储为JSON?)。