Java 是否可以使用Dagger2注入使用活动对象创建的对象?
这是我的MainViewModelModule类,我想在其中添加MainActivity对象的创建:Java 是否可以使用Dagger2注入使用活动对象创建的对象?,java,android,dependency-injection,dagger-2,dagger,Java,Android,Dependency Injection,Dagger 2,Dagger,这是我的MainViewModelModule类,我想在其中添加MainActivity对象的创建: public abstract class MainViewModelModule { @Binds abstract ViewModelProvider.Factory bindMainViewModelFactory(MainViewModelFactory factory); @Binds @IntoMap @ViewModelKey(MainVi
public abstract class MainViewModelModule {
@Binds
abstract ViewModelProvider.Factory bindMainViewModelFactory(MainViewModelFactory factory);
@Binds
@IntoMap
@ViewModelKey(MainViewModel.class)
abstract ViewModel provideMainViewModel(MainViewModel viewModel);
@Provides
abstract MainActivity bindMainActivity(); //Create MainActivity object
@Singleton
@Provides
static MyCustomClass provideMyCustomClass(MainActivity mainActivity) {
return DataBindingUtil.setContentView(mainActivity, R.layout.activity_main);
}
}
这就是我试图将MyCustomClass对象注入我的活动类的方式:
public class MainActivity extends DaggerAppCompatActivity {
@Inject MainViewModel mainViewModel;
@Inject MyCustomClass myCustomClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Use myCustomClass
}
}
但它不起作用。Android Studio抱怨:
错误:@Binds方法必须只有一个参数,其类型可分配给返回类型
有人能帮我在
MainActivity
中插入MyCustomClass
对象吗?谢谢我想尝试一下,希望能成功works@a_local_nobody期待你的回答。谢谢,让我知道,我不是100%肯定它会工作,我想你需要一个提供和一个bind@a_local_nobody无论如何,谢谢你。你还有其他想法吗?@a_local_刚才没有人这么做,我明白了:错误:@Binds方法必须是抽象的
。所以我不能抽象,因为我需要一个实现。