提问人:Jojo Drink 提问时间:10/7/2023 最后编辑:Jojo Drink 更新时间:10/7/2023 访问量:50
如何在 Kotlin 中为泛型设置 null
How to set null for generics in Kotlin
问:
在我的应用程序中,我使用 ViewBinding 来访问视图,为此我创建了 Base Fragment 并编写了以下代码。
在onDestroy方法中,我想要清空视图,但显示错误。
我的 BaseFragment 代码:
abstract class BaseFragment<T : ViewBinding>(private val bindingInflater: (inflater: LayoutInflater) -> T) : Fragment() {
//Other
var isNetworkAvailable = true
private lateinit var viewBinding: T
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewBinding = bindingInflater(inflater)
return viewBinding.root
}
override fun onDestroy() {
super.onDestroy()
viewBinding = null
}
}
在这一行中显示此错误。Null can not be a value of a non-null type T
viewBinding = null
我该如何解决?
答:
1赞
ItzDavi
10/7/2023
#1
如果要声明可为 null 的类型或变量,则应在类型声明之后使用 。?
遵循本文档
val string : String = null --> Nope, String is not nullable
val string : String? = null --> Yes, String is nullable
若要为变量或类型赋值,必须声明该值可为 null。null
评论
onDestroyView