有没有办法使用 Dagger2 将对象注入接口
Is there a way to inject an object into an interface using Dagger2
在我的 activity class 中,我可以使用以下方法注入 ViewModel:
@Inject
GameViewModel gameViewModel;
而且效果很好。问题是,我想在接口中使用该对象:
public interface SharedData {
@Inject
GameViewModel gameViewModel;
default void createNewUser(User authenticatedUser) {
gameViewModel.userLiveData.observe(this, user -> {
Log.d("TAG", user.name);
});
}
}
这可能吗?因为我得到:
Variable gameViewModel might not have been initialized
Dagger 不应该这样做吗?
您不能在界面中使用字段。要使用字段,您应该使用 class 或抽象 class.
在我的 activity class 中,我可以使用以下方法注入 ViewModel:
@Inject
GameViewModel gameViewModel;
而且效果很好。问题是,我想在接口中使用该对象:
public interface SharedData {
@Inject
GameViewModel gameViewModel;
default void createNewUser(User authenticatedUser) {
gameViewModel.userLiveData.observe(this, user -> {
Log.d("TAG", user.name);
});
}
}
这可能吗?因为我得到:
Variable gameViewModel might not have been initialized
Dagger 不应该这样做吗?
您不能在界面中使用字段。要使用字段,您应该使用 class 或抽象 class.