在文档中它说@Provides 方法可能有自己的依赖关系,比如:
@Provides Pump providePump(Thermosiphon pump) {
return pump;
}
如果我这样写会发生什么变化:
@Provides Pump providePump() {
return new Thermosiphon();
}
在第一个 fragment 中:该方法从哪里获得它的泵?
最佳答案
文档还显示了 Thermosiphon
类:
class Thermosiphon implements Pump {
private final Heater heater;
@Inject
Thermosiphon(Heater heater) {
this.heater = heater;
}
...
}
这个类的构造函数用@Inject
注解。这让 Dagger 知道在需要 Thermosiphon
时使用此构造函数,并自动为其提供 Heater
实例,因此您不必这样做。
您自己创建一个新的 Thermospihon
实例完全没问题,但是 Dagger 这样做可以省去您的麻烦。例如,如果您手动执行此操作,则需要从某处获取一些 Heater
引用。这就是 Dagger 的全部意义所在,因此您不必进行繁琐的重复性工作。
关于android - 提供方法依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548577/