3

現在、ピアツーピアの「ネットワーク プロトコル」を使用して Java ゲームを作成しています。これは、ネットワークを介して他のゲームにオブジェクトを送信することを意味します。

開発が進むにつれて、私は何かを追加したり削除したりします。ゲームを変更すると、最終的に古いバージョンと互換性がなくなります。

現在、ネットワーク経由で送信するプロトコル オブジェクトに現在のバージョン番号を保存したいと考えています。変更するたびにバージョンを更新し、2 つのゲーム インスタンスに互換性があるかどうかをコードで検出できます。

私の質問は: Java でバージョン番号を保存するための標準クラスは何ですか?

メジャー バージョン、マイナー バージョン、パッチ レベル バージョンを提供するもの、同等のものなどを検索します。

そのようなクラスをグーグルで検索するのはかなり難しい..

4

2 に答える 2

0

バージョン管理メカニズムは、使用しているシリアル化メカニズムによって異なります。標準の Java シリアル化を使用している場合、serialVersionUIDプロパティはクラスのバージョンを示します。serialVersionUID はlong

于 2013-11-02T14:16:57.630 に答える
0

私の知る限り、メッセージにプロトコルのバージョン番号を明示的に含めるのは標準的な方法です。数値フィールドは制限が厳しすぎることが多いため、そのフィールドには文字列を使用することをお勧めします (また、最近では文字列の使用が事実上の標準になっているようです)。

オブジェクトのバージョンは、プロトコルに互換性があるかどうかに必ずしも対応していないため、通常、これはオブジェクトのバージョンを持つよりも優れています。

メッセージのシリアライゼーションに Java シリアライゼーションを使用している場合、Java シリアライゼーションには独自のバージョン管理スキームがあるため、状況が少し複雑になる可能性があります。それを使用することもできますが、独立したシリアル化プロトコル (JSON、XML、protobuf など) を使用する方が簡単な場合があります。

于 2013-11-02T14:19:59.343 に答える