任何在声明后初始化的变量都称为“后期初始化变量”。在传统的编程语言中,任何非 NULL 类型的变量都需要在构造函数中进行初始化。但有时,开发人员会错误地忘记执行这些 NULL 检查,从而导致编程错误。为了避免这种情况,Kotlin 引入了一个新的修饰符,称为“lateInit”。除了这个修饰符,Kotlin 还提供了几个方法来检查这个变量是否被初始化。
为了创建一个“lateInit”变量,我们只需要添加关键字“lateInit”作为该变量的访问修饰符。以下是在 Kotlin 中使用“lateInit”需要遵循的几个条件 -
将“lateInit”与可变变量一起使用。这意味着,我们需要将“var”关键字与“lateInit”一起使用。
"lateInit" 只允许用于非 NULLable 数据类型。
“lateInit”不适用于原始数据类型。
当变量属性没有任何getter和setter方法时,可以使用“lateInit”。
在这个例子中,我们将一个变量声明为“lateInit”变量,并且我们将使用我们的 Kotlin 库函数来检查该变量是否被初始化。
class Tutorial { lateinit var name : String fun checkLateInit(){ println(this::name.isInitialized) //它将打印 false 因为该值未初始化 //初始化名称 name = "www.nhooo.com/" println(this::name.isInitialized) //它将返回 true } } fun main() { var obj=Tutorial(); obj.checkLateInit(); }输出结果
执行代码后,它将生成以下输出 -
false true
在第二种情况下,变量名被初始化,因此它返回 True。