0

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

当我将字段添加到对象树中的对象时,就会出现问题。当我现在加载旧对象树时,我得到一个ClassException,这当然是有道理的,因为该对象/类已更改并且旧类与新类不匹配。

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

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

4

2 回答 2

2

您可以使用这种方法(实现readObjectwriteObject)来处理模式迁移:http ://www.javaworld.com/javaworld/jw-02-2006/jw-0227-control.html

于 2013-04-08T14:19:49.480 回答
0

在 Serializable 类中使用 ObjectInputStream 和 ObjectOutputStream 类的 readObject() 和 writeObject() 方法,以便在从文件 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 to proper Object)ois.readObject();

于 2013-04-08T14:39:13.980 回答