如何在 Kotlin 中检查“lateinit”变量是否已初始化?
在 Kotlin 中, lateinit关键字用于声明后初始化的变量,或者我们可以说后期初始化的变量称为 lateinit 变量。当我们确定变量将在使用之前被初始化时,将使用 lateinit 关键字。如果在使用 lateinit 变量之前没有对其进行初始化,则会出现“lateinit 属性尚未初始化”的错误。您可以在 isInitialized()方法的帮助下在使用之前检查 lateinit 变量是否已初始化。如果 lateinit 属性已被初始化,则此方法将返回true ,否则将返回 false 。
您可以通过以下方式轻松做到这一点:
::variableName.isInitialized
或者:
this::variableName.isInitialized
但是,如果您在侦听器或内部类中,请执行以下操作:
this@OuterClassName::variableName.isInitialized
例如:
Kotlin
class Tutorial {
lateinit var tutorialName : String
fun initializeName(){
println(this::tutorialName.isInitialized)
// initializing name
tutorialName = "GFG Android Course"
println(this::tutorialName.isInitialized)
}
}
fun main() {
Tutorial().initializeName();
}
输出:
false
true