-1
Dagger2はかなり新しいです。私は次のような構造を持っているとしましょう:Dagger2とネストされた子の注射
public class A extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
DependencyInjector.applicationComponent.inject(this);
}
...
public void foo() {
B b = new B();
**DependencyInjector.applicationComponent.inject(b);**
}
}
public class B {
@Inject
C c;
}
私の質問は、私は「A」は、既に注入され、すべてが、明示的に「b」を注入しなければなりませんの?それとも、「A」を注入すれば十分ですか?
Thxを:あなたはBを注入する必要はありませんので
はしかし、注入され、ダガー-作成Provider
に延期することによって、あなたはAの注入を利用することができます。そして、より良い方法は何でしょう? – davidOharaDaggerに注射可能なオブジェクトの作成を任せる方が良いという点で、私がコードサンプルで持っている方法は「良い方法」です。 Androidや他のフレームワークがあなたのために作成するオブジェクトのための 'inject'メソッドの使用を保存します。あなたのオブジェクトグラフに参加する必要のないモデルオブジェクトのような単純なオブジェクトに対しても、 'new'を使うことができます。 [注射剤]対 "新製品"(http://misko.hevery.com/2008/09/30/to-new-or-not-to-new/)を参照してください。 –
"c"も注射されますか? – davidOhara