0

再次理解 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变得毫无意义。

4

0 回答 0