У меня возникла проблема в понимании того, почему следующий код не работает.
У меня есть следующая структура проекта:
@Component(modules = CCModule.class)
public interface CComponent {
XXX getXXX();
}
где
@Module
public class CCModule {
@Provides @Singleton
public XXX provide XXX(){
return new XXX();
}
}
и
@Component(dependencies = CComponent.class, modules = AAModule.class)
public interface AComponent {
YYY getYYY();
}
где
class YYY {
@Inject
public YYY(XXX xxx) {
...
}
}
Я инициализирую все как:
CComponent c_component = Dagger_CComponent.builder().cCModule(new CCModule()).build();
AComponent a_component = Dagger_AComponent.builder()
.cComponent(c_component)
.aAModule(new AAModule())
.build();
После компиляции я получаю следующую ошибку:
Ошибка: (11, 1) ошибка: com.test.CComponent(unscoped) не может привязки с привязкой к привязке: @Provides @Singleton com.test.XXX com.test.CCModule.provideXXX()
То, к чему я стремлюсь, состоит в том, чтобы один компонент наследовал привязки от других компонентов, чтобы иметь одинаковые ссылки на объекты (одиночные числа).