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();
}
では、すべてのインジェクションが正しく行われるSomeView
viaのインスタンスを作成するには、他に何が必要でしょうか?getSomeView
私はそれをしようとしまし@Module(includes = DataModule.class)
た@Provides ISomeView provideISomeView()
(または、provideISomeView(IDataProvider dataProvider)
少なくともDataProvider
上記のメソッドで正しいインスタンスを提供します)が、何を試してIDataProvider
も、モジュール内またはSomeManager
コンストラクター自体-そのようなステートメント@Inject
は無意味になります。