次のコードが機能しない理由を理解するのに問題があります。
私は次のプロジェクト構造を持っています:
@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 (スコープ外) はスコープ付きバインディングを参照できない場合があります: @Provides @Singleton com.test.XXX com.test.CCModule.provideXXX()
私が目指しているのは、あるコンポーネントが他のコンポーネントからバインディングを継承して、オブジェクト (シングルトン) への同じ参照を持つようにすることです。