我从ViewModelProvider.Factory覆盖此函数,但得到一个一般返回类型为T的错误。为什么?https://i.stack.imgur.com/H3Gmg.png
class NewsViewModelProviderFactory(
val newsRepository: NewsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return NewsViewModel(newsRepository) as T
}
}
1条答案
按热度按时间baubqpgj1#
问题似乎来自于类型参数
T
的父类型-即ViewModel?
。注意,它写的是
<T : ViewModel>
,而不是<T : ViewModel?>
,这意味着ViewModelProvider.Factory
的任何使用者都希望create
函数返回一个 non-nullViewModel
,然而,您编写的create
函数可能返回null。如果将函数更改为
这应该能缓解问题。