0

Arraylist<java.awt.geom.Area>スルーソケットを送信するにはどうすればよいですか? それを送信する方法Areaはありますか?SerializableNotSerializableException

4

2 に答える 2

1

シリアル化できないクラスをネットワーク接続経由​​で送信するには、コードを自分で「シリアル化」する必要があります。これは、シリアライゼーション エンコーディング/フォーマットを設定することを意味します。つまり、文字列またはバイナリ表現に変換し、このフォーマットを生成するコードを記述し、文字列/バイナリ表現を解析してオブジェクトのインスタンスを再作成できるコードも記述します。

これは、逆シリアル化するときに同等のオブジェクトを再作成できるように、十分な内部状態にアクセスする (および文字列/バイナリ表現でエンコードする) 必要があることを意味します。java.awt.geom.Areaはシリアル化をネイティブにサポートしていないため、すべてあなた次第です。

toString()単純なクラスの場合は、シリアライズを呼び出し、その出力文字列を解析して同等のオブジェクトを再構築する単純なコードを記述するだけで十分です。複雑なクラスでこれを行う方法は、クラスの内部構造に依存し、おそらく SO で説明できる範囲を超えています。

これは、表現できるさまざまなクラスAreaが非常に多いため、おそらく自明ではありません。Shape

于 2013-08-08T18:32:07.823 に答える