使用版本控制保存java对象树?

时间:2013-04-08 14:17:18

标签: java serialization

我有一个Java应用程序,它使用默认的java对象序列化(ObjectOutputStream等)将对象树保存到文件中。这很有效。

当我向对象树中的对象添加字段时会出现问题。当我现在加载旧对象树时,我得到一个ClassException,这当然有意义,因为对象/类已经改变,旧类与新类不匹配。

现在我可以编写不同版本的load方法,以便它可以处理旧的对象树,但我怀疑这可能变得不易管理和维护。

我想知道是否有更好的方法在java中保存支持版本控制的对象树?

2 个答案:

答案 0 :(得分:2)

您可以使用此方法(实施readObjectwriteObject)来处理架构迁移:http://www.javaworld.com/javaworld/jw-02-2006/jw-0227-control.html

答案 1 :(得分:0)

使用readObject() 和writeObject() Serializable类中的ObjectInputStream和ObjectOutputStream类的方法 以便在序列化/反序列化对象时定义默认行为 你的档案     ObjectOutputStream oos = new ObjectOutputStream(file / path / url);     oos.writeObject(序列化对象);     oos.close();     oos.flush();     ObjectInputStream ois = new ObjectInputStream(file / path / url / request);     Object obj =(TypeCast到适当的Object)ois.readObject();