0

RMI を使用してリモート クラスから返されるオブジェクトをマーシャリングする Java では、そのオブジェクトに Serializable を実装するだけでよいのでしょうか? 内部に変数を含むクラス ノードがあり、そのノードを返したいと考えています。シリアライズ可能を実装するだけですか?もしそうなら、オブジェクトを受け取っているクラスはどうですか? そのクラスもシリアライズ可能を実装する必要がありますか?

例:

public class node implements Serializable{
//variables
//variables
public node(//arguments to constructor here){

}

}
4

3 に答える 3

0

組み込みの Java シリアライゼーションを使用してインスタンスをシリアライズしたいクラスがある場合、そのクラスが を実装するだけでなくSerializable、そのすべてのインスタンス変数も を実装するSerializableか、プリミティブにするか、またはマークする必要がありtransientます (つまり、JVM にそれが問題ないことを伝えます)。シリアル化されないようにします)。

クラスが何らかの理由でこれらの制約に準拠できない場合は、実装することでカスタムのシリアル化動作を自分で実装できExternalizableます。その後、オブジェクトの状態を書き出して、反対側で読み戻す責任があります。

于 2013-10-31T22:17:17.563 に答える
0

シリアル化されるクラスは、Serializable を実装する必要があります。送信クラスと受信クラスはそうではありません。なぜあなたがそうでないと思うのか分かりません。

于 2013-10-31T22:12:45.657 に答える
0

あなたの質問を正しく理解しているかどうかはわかりませんが、...シリアライズ可能なクラスにメンバー変数として他のオブジェクトがある場合は、それらもシリアライズ可能にすることをお勧めします。これはあなたの質問に答えていますか?

コード インスペクタ プログラムが便利な場合は、投稿せずにそのような質問に対する回答を非常に迅速に得ることができます。

ヒントとして、永続化または転送したいオブジェクトのみがSerializableを実装する必要があるため、シリアライズ/アンシリアライズを通じてオブジェクトをクラス構造として再構築できます

于 2013-10-31T22:19:56.683 に答える