为了账号安全,请及时绑定邮箱和手机立即绑定

牙签不会在注入的实例中注入依赖项

牙签不会在注入的实例中注入依赖项

MMTTMM 2022-05-20 18:28:41
我为 Toothpick 和 Authenticator 创建了 Activity、ViewModel、Modules。@Singletonpublic class GetSmsViewModel {    @Inject Application app;    @Inject Authenticator authenticator;...}public class GetSmsActivity extends AppCompatActivity {    private Scope appScope;    @Inject GetSmsViewModel mGetSmsViewModel;...    @Override    protected void onCreate(Bundle savedInstanceState) {        appScope = Toothpick.openScope(getApplication());        appScope.installModules(new DIModule(getApplication()), new DataModule());        super.onCreate(savedInstanceState);        Toothpick.inject(this, appScope);   ...   }}public class DIModule extends Module {    public MagicDeliveryMainModule(Application application) {        bind(GetSmsViewModel.class).toInstance(new GetSmsViewModel());        bind(Application.class).toInstance(application);        bind(Authenticator.class).toInstance(new Authenticator());    }}在 Toothpick 的文档中写道:“如果 Toothpick 创建一个实例,它将始终注入其依赖项。” , 但在 Toothpick.inject(this, appScope); 之后mGetSmsViewModel.app == null 和 mGetSmsViewModel.authenticator == null 。在 Toothpick.inject(mGetSmsViewModel, appScope); 之后 app 和 authenticationator 字段被注入。应该是这样吗?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

在您的示例中,牙签没有创建实例,您正在创建实例并绑定它。

要让牙签创建实例,需要绑定目标实现类并提供注入构造函数。


查看完整回答
反对 回复 2022-05-20
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号