Dagger がどのように機能するかを理解するのに少し苦労していますが、今回もコードがいくつかあります。
私はいくつかのクラスとそれぞれのインターフェースを持っています
public class SomeView {
@Inject ISomeManager
public SomeView() {}
...
}
public class SomeManager implements ISomeManager {
@Inject IDataProvider
public SomeManager() {}
...
}
public class DataProvider implements IDataProvider {
...
}
そして、おおよそ次のようなコンポーネント
@Component(modules = {DataModule.class, SomeModule.class})
public interface AppComponent() {
ISomeView getSomeView();
}
では、すべてのインジェクションが正しく行われるSomeViewviaのインスタンスを作成するには、他に何が必要でしょうか?getSomeView
私はそれをしようとしまし@Module(includes = DataModule.class)た@Provides ISomeView provideISomeView()(または、provideISomeView(IDataProvider dataProvider)少なくともDataProvider上記のメソッドで正しいインスタンスを提供します)が、何を試してIDataProviderも、モジュール内またはSomeManagerコンストラクター自体-そのようなステートメント@Injectは無意味になります。