I have a @Module class that has many @Provides methods. My @Component takes a dependency on this Module class. Ex:
@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);
}
}
I create an instance of the component using the Dagger builder, and provide a new instance of MyModule. If I only call myComponent.getObjectA() will it also construct ObjectB (and its dependencies), or are those left unconstructed?