私は執筆中のサーバーとクライアントのオブジェクトを直列化および逆シリアル化するのにObjectOutputStreamとObjectInputStreamをうまく使用しました。サーバーとクライアントは通常2つの異なるマシンに搭載されていますが、それはターンベースのカードゲームなので、ユーザーがローカルでプレイして、クライアントとサーバーの両方を同じマシン上で実行します。ObjectOutputStreamを使用せずにシリアライズ可能なオブジェクトをコピー
今、私は接続インタフェースの代替実装を書いています。インターフェイスには、void sendToServer(Object)やObject receiveFromServer()などのメソッドが含まれます。
通常、sendToServer(Object)関数はオブジェクトをObjectOutputStream経由で送信しますが、オブジェクトは同じマシン上にあるため、オブジェクトのキューを作成し、送信または受信が呼び出されるたびにプッシュ/ポップします。しかし、問題は、クライアントがサーバーが使用するオブジェクトへの参照を持たせたくないということです。私はそれをコピーにしたいのです。私はコピーコンストラクタを持っておらず、オブジェクトはクローン可能ではありません。
私の状況ではどうしますか?
同じマシンで再生している場合、同じJVMまたは別のJVMで実行されますか? –
コピーコンストラクタを追加するだけでなく、コピー可能にするのはなぜですか? –
また、なぜオブジェクトをメモリ内でシリアル化してから逆シリアル化して、オブジェクトの入出力ストリームを使用してオブジェクトのコピーを作成し直すことができないのか、もう一度教えてください。 –