使用匕首2进行注射的方法
我还没有设法找到一个很好的解释/例子使用Dagger 2进行方法注入。有人可以帮我理解吗?
例:
@Inject
public Dinner makeDinner(Pasta pasta, Sauce sauce) {
mPan.add(pasta);
mPan.add(sauce);
return mPan.cookDinner();
}
因此,如果我用 注释我的方法,我是否正确地假设方法签名中的参数将注入对象图中定义的对象?那么,我该如何在我的代码中使用此方法呢?当我进行方法调用时,它仍然会期望我提供所有参数,这有点违背了目的。@Inject
更新:
因此,据我所知,如果我调用 Dinner 对象,则 Dinner 对象将可用,假设我的 DinnerComponent 是这样设置的:DinnerComponent.dinner()
@Component(modules = DinnerModule.class)
public interface DinnerComponent {
Dinner dinner();
}
我的DinnerModule是这样设置的:
@Module
public class DinnerModule {
public DinnerModule() {}
@Provides
Pasta providePasta() { return new Pasta(); }
@Provides
Sauce provideSauce() { return new Sauce(); }
}
如果我想炸我的晚餐怎么办?那么让我们介绍一下这个方法:
@Inject
public Dinner makeDinner(Pasta pasta, Sauce sauce) {
mPan.add(pasta);
mPan.add(sauce);
return mPan.fryDinner();
}
如何在组件中指定哪个晚餐是哪个?