没有足够的信息来推断类型变量 T
Not enough information to infer type variable T
我今天已经将我的 build.gradle 文件更新到最新版本
classpath 'com.android.tools.build:gradle:3.6.3' and the latest ext.kotlin_version = '1.3.72'
我在标题中收到以下错误:instance().
private val viewModelFactory: ListViewModelFactory by instance()
这是我的工厂class:
class ListViewModelFactory(
private val listRepository: ListRepository
) : ViewModelProvider.NewInstanceFactory() {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return ListViewModel(listRepository) as T
}
}
有人可以解释为什么会发生这种情况以及我怎样才能摆脱这个错误。提前致谢!
P.S。如果有任何帮助,我使用 kodein,这是我的绑定
bind() from provider { ListViewModelFactory(instance()) }
你能试试吗
private val viewModelFactory by instance<ListViewModelFactory>()
为避免此问题,请在 IDE 中禁用 "Preferences | Kotlin Compiler" 中的新类型推断。
试试这个:替换
private val factory : AuthViewModelFactory by instance()
至
private val factory by instance<AuthViewModelFactory>()
我今天已经将我的 build.gradle 文件更新到最新版本
classpath 'com.android.tools.build:gradle:3.6.3' and the latest ext.kotlin_version = '1.3.72'
我在标题中收到以下错误:instance().
private val viewModelFactory: ListViewModelFactory by instance()
这是我的工厂class:
class ListViewModelFactory(
private val listRepository: ListRepository
) : ViewModelProvider.NewInstanceFactory() {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return ListViewModel(listRepository) as T
}
}
有人可以解释为什么会发生这种情况以及我怎样才能摆脱这个错误。提前致谢!
P.S。如果有任何帮助,我使用 kodein,这是我的绑定
bind() from provider { ListViewModelFactory(instance()) }
你能试试吗
private val viewModelFactory by instance<ListViewModelFactory>()
为避免此问题,请在 IDE 中禁用 "Preferences | Kotlin Compiler" 中的新类型推断。
试试这个:替换
private val factory : AuthViewModelFactory by instance()
至
private val factory by instance<AuthViewModelFactory>()