最近,我尝试开发在不同模块中具有相同视图的应用程序,因此我尝试重用ViewModel。这是视图模型类
class ChooseDataViewModel<T: DataSelectable>(application: Application) :
AndroidViewModel(application) {
val title = MutableLiveData<String>()
private val mData = MutableLiveData<List<T>>() }
class ClassA: DataSelectable{}
class ClassB: DataSelectable{}
在片段中,我试图通过以下方法创建数据类型为ClassB的viewModel:
viewModel = ViewModelProvider(navBackStackEntry).get(ChooseDataViewModel::class.java)
但编译器显示错误消息
Type mismatch.
Required:
ChooseDataViewModel<T>?
Found:
ChooseDataViewModel<*>
我该如何解决这个问题?
请更新您的ViewModel类,如下所示。
class ChooseDataViewModel(application: Application) :
AndroidViewModel(application) {
val title = MutableLiveData<String>()
private val mData = MutableLiveData<List<DataSelectable>>() }
我希望它对你有帮助!