[英]Is there a way to inject an object into an interface using Dagger2
In my activity class, I can inject a ViewModel using:在我的活动 class 中,我可以使用以下方法注入 ViewModel:
@Inject
GameViewModel gameViewModel;
And it works fine.它工作正常。 The problem is, that I want to use the object in an interface:
问题是,我想在接口中使用 object:
public interface SharedData {
@Inject
GameViewModel gameViewModel;
default void createNewUser(User authenticatedUser) {
gameViewModel.userLiveData.observe(this, user -> {
Log.d("TAG", user.name);
});
}
}
Is this even possible?这甚至可能吗? Because I get:
因为我得到:
Variable gameViewModel might not have been initialized
变量 gameViewModel 可能尚未初始化
Isn't Dagger supposed to do that? Dagger不应该这样做吗?
You cannot use fields in an interface.您不能在界面中使用字段。 To use fields, you should be using a class, or an abstract class.
要使用字段,您应该使用 class 或抽象 class。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.