これは、ツール自体に依存します。 Hessian のソースを読んでわかる限り、serialVersionUID
Java の組み込みシリアライザー () で使用することを目的としていますが、これは Hessian では使用されません。ObjectOutputStream
特に Hessian の場合、これらの種類の変更について言及している私が見つけることができる最良の情報源は、次の電子メールです。
少なくとも Hessian では、バージョニングを、処理できる一連の種類の変更と考えるのが最善です。
特に Hessian は次の種類の変更を管理できます: 1) フィールドを追加または削除すると、フィールドを理解しない側はそれを無視します。2) Hessian が変換できる場合 (int から long など)、いくつかのフィールド タイプの変更が可能です。
したがって、送信者が型指定されていないマップ {"field1", 10} を送信し、ターゲットが MyValue { int field1; であることがわかっている場合。} の場合、ヘシアンはフィールドをマッピングできます。
ただし、次のようなことは管理できません。1) フィールド名の変更 (データが削除されます)。2) Object field1 のように、ターゲットが未定義のクラス名が変更されます。MyValue2 を新しい field1 として送信すると、以前のバージョンが MyValue1 であった場合、Hessian はその自動遷移を行うことができません。(しかし、上記の #3 と同様に、"MyValue2 field1" は Hessian に変換するのに十分な情報を提供します。) 3) クラスの分割。たとえば、サブクラスを作成していくつかのフィールドをそこにプッシュします。
4) リストにマップするか、変更をマップするリストにマップします。
基本的に、Hessian がマップで未知の型をサポートするつもりはないと思います。