我有一个Java应用程序,它使用默认的java对象序列化(ObjectOutputStream
等)将对象树保存到文件中。这很有效。
当我向对象树中的对象添加字段时会出现问题。当我现在加载旧对象树时,我得到一个ClassException
,这当然有意义,因为对象/类已经改变,旧类与新类不匹配。
现在我可以编写不同版本的load方法,以便它可以处理旧的对象树,但我怀疑这可能变得不易管理和维护。
我想知道是否有更好的方法在java中保存支持版本控制的对象树?
答案 0 :(得分:2)
您可以使用此方法(实施readObject
和writeObject
)来处理架构迁移: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();