有没有办法使用 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.