私は多くの@Providesメソッドを持つ@Moduleクラスを持っています。私の@Componentは、このModuleクラスに依存します。例:Dagger2はオブジェクトを初期化していませんか?
@Singleton
@Component(modules = { MyModule.class})
public interface MyComponent {
ObjectA getObjectA();
ObjectB getObjectB();
}
@Module
public class MyModule {
@Provides
@Singleton
ObjectC provideObjectC() {
return new ObjectC();
}
@Provides
@Singleton
ObjectD provideObjectD() {
return new ObjectD();
}
@Provides
@Singleton
ObjectA provideObjectA(ObjectC objectC) {
return new ObjectA(objectC);
}
@Provides
@Singleton
ObjectB provideObjectB(ObjectD objectD) {
return new ObjectB(objectD);
}
}
私はダガービルダを使用してコンポーネントのインスタンスを作成し、MyModuleというの新しいインスタンスを提供しています。私がmyComponent.getObjectA()を呼び出すだけでObjectB(およびその依存関係)も構築されるのでしょうか?
あなたが提供したコードは、Daggerを使用する標準的な方法に実際に従っているわけではありません。プロバイダメソッドを手動で呼び出すべきではありません。 –
私は質問を反映し、将来の混乱を避けるために質問を更新しました。質問は実際にはオブジェクトの注入についてではなく、完全に使用されていないオブジェクトに関するものでした。 – emilyk