この質問は、おそらくこの1つの PassパラメーターをGuiceを使用してコンストラクターに正確に複製したものです。
違いは、GuiceだけでなくAndroidにもroboguiceを使用しているため、そこでの回答が機能しないことです。
質問は-作成されたオブジェクトに初期化パラメータを渡すにはどうすればよいですか?つまり、roboguiceが知らないパラメータで初期化する必要があるインターフェイスを挿入しました。
私が提供するリンクに表示されているものは、ファクトリインターフェイスを作成し、次のように登録する必要があります
void configure(Binder binder) {
binder.install(new FactoryModuleBuilder()
.implement(FooInterface.class, Foo.class)
.build(FooFactory.class));
}
しかし、FactoryModuleBuilderクラスが見つかりません。私はIntellijIDEAを使用しています。現在の場所でアクセスできるすべてのクラスを表示でき、「Factory」という単語で始まるクラスがないことを100%確信できます。
roboguiceを使用してファクトリを作成するにはどうすればよいですか?
更新しました
guice-assistedinjectをダウンロードするのを忘れました。しかし、それでもこの工場をどこに登録すればよいのかわかりません。
更新2
なぜそれが必要なのですか?ある抽象化には、Roboguiceでは解決できない依存関係があるはずだからです。この依存関係は、単純な文字列や数値であっても、任意のタイプにすることができます。
私の場合、UIにNumberPickerコントロールがあり、MyNumberPickerWrapperクラスのすべてのUI固有のタスクを移動したいと思います。そして、このラッパーを作成するときに、コンストラクターを介してその依存関係(このコントロール)を挿入します。
私がそのようなアプローチで正しいかどうかは重要ではありませんが、コンストラクターの注入が必要であり、この注入されたクラスをRoboguiceで作成できなかった、より適切な例がたくさんある可能性があります