0

Javaでのシリアル化について明確にする必要があります。オブジェクトをシリアライズしていて、そのオブジェクトを RMI 経由で返したい場合、オブジェクトのカスタム クラスにシリアライズ可能を実装するだけですか? objectoutputstream と objectinputstream を見てきましたが、それらの使用法を十分に理解していないため、それらを使用する必要があるかどうかはわかりません。私の2番目の質問は、配列リストをシリアライズ可能にするにはどうすればよいですか? 3 番目の質問は最初の質問に関連している可能性がありますが、オブジェクトを返す前にマーシャリングするにはどうすればよいですか? オブジェクトをシリアル化すると、プロセスでマーシャリングされますか?

問題のクラスを呼び出しましょう

public class Sentence implements Serializable  {

}

そして、そのクラスのインスタンスを作成し、他のクラスからそのオブジェクトを返します

4

2 に答える 2

2
  1. はい: Serializable を実装すると、オブジェクトがシリアライズ可能でないオブジェクトを参照しない限り、オブジェクトがシリアライズ可能になります。オブジェクト ストリームは、オブジェクトを送受信するために RMI によって内部的に使用されます。RMI を使用する場合は、それらを使用する必要はありません。ソケットを使用してオブジェクトを送信したり、ファイルに保存したりする場合は、それらを使用できます。

  2. ArrayList はすでにシリアライズ可能です。そのjavadocを見てください。何もする必要はありません。

  3. RMI メソッドからオブジェクトを返すだけで、RMI がそれをシリアル化します。シリアライゼーションとマーシャリングは、基本的に同じ意味の 2 つの言葉です。同様に、RMI メソッドが引数を取る場合、RMI は引数として渡されたオブジェクトをシリアル化し、RMI サーバーに送信します。RMI サーバーはそれを逆シリアル化し、実際のメソッドを呼び出します。それはすべて RMI によって行われます。

于 2013-11-02T11:00:10.217 に答える