1. ホーム
  2. java

[解決済み] Javaシリアライゼーション: readObject() vs. readResolve()

2022-05-15 17:47:08

質問

効果的なJava や他の情報源は、どのように、そしていつ readObject() メソッドをどのように、そしてどのような場合に使用するかについて、かなり良い説明があります。このメソッドは readResolve() メソッドは、一方では、少し謎のままです。基本的に、私が見つけたすべてのドキュメントは、2 つのうちの 1 つにしか言及していないか、または両方に個別にしか言及していません。

未解決のままになっている疑問は

  • 2 つの方法の違いは何ですか。
  • どのような場合にどちらの方法を実装すべきでしょうか?
  • どのように readResolve() はどのように使われるべきでしょうか、特に何を返すかという点では?

この件に関して、何か光明を見いだせるといいのですが。

どのように解決するのですか?

readResolve を置き換える を置き換えるために使われます。オブジェクトが読み込まれたら、それをシングルトンインスタンスに置き換えるのです。これは、シングルトンをシリアライズおよびデシリアライズすることによって、誰も別のインスタンスを作成できないことを保証します。