匕首2:注入提供的班级

时间:2015-06-01 13:25:26

标签: java android dagger-2

在理解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创建getSomeView的实例,并且所有注入都正确发生?

我尝试@Module(includes = DataModule.class) @Provides ISomeView provideISomeView()(或者更确切地说,provideISomeView(IDataProvider dataProvider)至少确实在我的方法中给了我一个正确的DataProvider个实例),但是没有无论我尝试了什么,我都无法注入IDataProvider而无需在模块中手动设置字段,甚至在SomeManager构造函数本身中设置字段 - 哪种类型的@Inject语句有点无意义。

0 个答案:

没有答案