我是 Android 开发新手,目前正在构建我的第一个真正的应用程序。我正在尝试实现 MVVM 架构,因此我为每个片段都有一个 viewModel,并且每个 viewModel 都有一个 viewModelFactory。至少,我是这么理解的。
我使用每个人似乎都用于工厂的样板代码:
class ExampleViewModelFactory(private val exampleDao: ExampleDao) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(exampleViewModel::class.java)) {
@Suppress("UNCHECKED_CAST")
return ExampleViewModel(exampleDao) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,编译器给了我以下错误:
e: C:\Users\ ...\ExampleViewModel.kt: (64, 7):仅允许使用 -Xjvm-default 选项从具有“@JvmDefault”成员的接口继承
这个错误是由我在 viewModel 中实现的 viewModelFactory 类产生的。我真的不知道这意味着什么,我找不到任何有用的东西,甚至找不到与我的具体问题相关的东西。我基本上遵循了一些有关创建第一个应用程序的基本教程,但我不断遇到这样的错误。在大多数情况下,我都能自己解决问题,但这一次有所不同。
我知道你们很多人都有丰富的经验和知识,所以我希望你们中的一些人抽出时间来帮助我,并给我一些提示,我可以做些什么来解决这个问题。