如何在Kotlin中检查“lateInit”变量是否已初始化?


任何在声明后才初始化的变量都称为“延迟初始化变量”。在传统的编程语言中,任何非空类型的变量都需要在构造函数中初始化。但有时,由于疏忽,开发人员忘记进行这些空值检查,从而导致编程错误。为了避免这种情况,Kotlin 引入了一种新的修饰符,称为“lateInit”。除了这个修饰符之外,Kotlin 还提供了一些方法来检查此变量是否已初始化。

要创建一个“lateInit”变量,我们只需要添加关键字“lateInit”作为该变量的访问修饰符。以下是使用Kotlin中的“lateInit”需要遵循的几个条件:

  • 将“lateInit”与可变变量一起使用。这意味着我们需要使用“var”关键字与“lateInit”一起使用。

  • “lateInit”仅允许用于不可为空的数据类型。

  • “lateInit”不适用于基本数据类型。

  • 当变量属性没有任何**getter**和**setter**方法时,可以使用“lateInit”。

示例

在这个例子中,我们将声明一个变量为“lateInit”变量,并将使用我们的Kotlin库函数来检查该变量是否已初始化。

class Tutorial {

   lateinit var name : String

   fun checkLateInit(){
      println(this::name.isInitialized)
      // it will print false as the value is not initialized

      // initializing name
      name = "www.tutorialspoint.com/"
      println(this::name.isInitialized)
      // It will return true
   }
}

fun main() {
   var obj=Tutorial();
   obj.checkLateInit();
}

输出

执行代码后,将生成以下输出:

false
true

在第二种情况下,变量**name**已初始化,因此返回True。

更新于:2021年10月27日

3K+ 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告