シングルトンを使用するJavaオブジェクトがあります(オブジェクトのコードのどこかにあるSingleton.getInstance()
など)。私は依存性注入(Dagger 2)の使用に切り替えています。標準的な方法は、このクラスのファクトリを作成し、DIフレームワークでファクトリにシングルトンを注入し、ファクトリにシングルトンを渡しますそれをメンバ変数に格納するオブジェクトのコンストラクタ(他の引数とともに)依存関係を持つオブジェクトのデシリアライズ
しかし、このオブジェクトはシリアライズ可能です。シングルトンを含むメンバ変数をtransient
にすると、シリアライゼーションが可能になりますが、オブジェクトがデシリアライズされると、メンバ変数はnull
になります。デシリアライズ後に依存関係を再度取得する最善の方法は何ですか?
[Javaクラスの静的データメンバーをシリアル化する方法は?](http://stackoverflow.com/questions/1008023/how-to-serialize-static-data-members-of-a-java-クラス) – Paul