直列化と直列化可能フィールドAPIの使用

概説

この例題は、直列化可能フィールドAPIを使った直列化の方法を示します。「クラスが、クラス内の既存のフィールド以外のフィールドを直列化可能と定義できる」ことの実例です。この例題ではバージョン管理がサポートされており、単にwriteObjectメソッドを書き換えてデータ形式をカスタマイズすることとは異なります(カスタム・データ形式の例を参照)。

この例題では、直列化可能フィールドAPIを使って、四角形の内部表現をx1,y1,x2,y2の形式(OriginalClass.javaを参照)からPoint(x1,y1), Point(x2,y2)(EvolvedClass.javaを参照)に変更しますが、外部表現はx1, y1, x2, y2のままです。これにより、オリジナルの表現と展開された表現の間に双方向の互換性が確保されます。

展開を扱うほかのすべての例題と同様に、展開後のクラス(ARectangle)には、オリジナル・クラス(ARectangle)にコマンドserialverを使用して取得したserialVersionUIDフィールドを定義する必要があります。

青色のバー

関連情報

ソース・ファイル
例題の実行
例題リスト

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.