デフォルトのJavaオブジェクトのシリアル化(ObjectOutputStream
など)を使用してオブジェクトツリーをファイルに保存するJavaアプリケーションがあります。これは非常にうまく機能します。
オブジェクト ツリーにあるオブジェクトにフィールドを追加すると、問題が発生します。古いオブジェクト ツリーをロードするClassException
と、もちろん、オブジェクト/クラスが変更され、古いクラスが新しいクラスと一致しないという意味があります。
これで、古いオブジェクト ツリーを処理できるように異なるバージョンの load メソッドを記述できるようになりましたが、これは管理と保守が容易ではないのではないかと思います。
バージョニングをサポートするJavaでオブジェクトツリーを保存するより良い方法があるかどうか疑問に思っていましたか?