0

デフォルトのJavaオブジェクトのシリアル化(ObjectOutputStreamなど)を使用してオブジェクトツリーをファイルに保存するJavaアプリケーションがあります。これは非常にうまく機能します。

オブジェクト ツリーにあるオブジェクトにフィールドを追加すると、問題が発生します。古いオブジェクト ツリーをロードするClassExceptionと、もちろん、オブジェクト/クラスが変更され、古いクラスが新しいクラスと一致しないという意味があります。

これで、古いオブジェクト ツリーを処理できるように異なるバージョンの load メソッドを記述できるようになりましたが、これは管理と保守が容易ではないのではないかと思います。

バージョニングをサポートするJavaでオブジェクトツリーを保存するより良い方法があるかどうか疑問に思っていましたか?

4

2 に答える 2

2

このアプローチ (readObjectおよび実装writeObject) を使用して、スキーマの移行を処理できます: http://www.javaworld.com/javaworld/jw-02-2006/jw-0227-control.html

于 2013-04-08T14:19:49.480 に答える
0

ファイル ObjectOutputStream oos = new ObjectOutputStream(file/path/url); oos.writeObject(シリアル化されたオブジェクト); oos.close(); oos.flush(); ObjectInputStream ois = new ObjectInputStream(file/path/url/request); Object obj = (適切なオブジェクトへの TypeCast)ois.readObject();

于 2013-04-08T14:39:13.980 に答える