我对lateinit和nullable变量感到困惑,哪一个用于变量.
lateinit var c: String
var d: String? = null
c = "UserDefinedTarget"
// if not added initialisation for c than throws UninitializedPropertyAccessException
if (c == "UserDefinedTarget") {
//do some stuff.
}
//not throws any exception whether d is initialise or not.
if(d == "UserDefinedTarget") {
//do some stuff
}
Run Code Online (Sandbox Code Playgroud) 在 Kotlin/Android 活动/片段中定义全局变量的最佳方法是什么?
当您应该使用这 2 种方法来定义全局变量时,有哪些不同的场景:
var viewpager: CustomViewPager? = null
Run Code Online (Sandbox Code Playgroud)
或者
lateinit var viewpager: CustomViewPager
Run Code Online (Sandbox Code Playgroud)
?
如果我使用前者,我将不必在我的代码中检查 null。例如,如果我用于lateinit以下内容:
viewpager = activity?.findViewById<CustomViewPager>(R.id.viewpager) 那么我将不得不检查空值。