Kotlin 如何执行伴生对象lateinit是初始化检查

Kotlin 如何执行伴生对象lateinit是初始化检查,kotlin,Kotlin,如果我有一个lateinit变量,我可以检查它是否使用(this::lateInitVar.isInitialized)初始化,如中所示 但是,如果变量是一个伴生对象,我怎么能这样做呢 e、 g 您可以将其提取到伴生对象内的函数中: class MyClass { companion object { lateinit var myGlobalLateInit: String fun isMyGlobalLateInitInitialized() =

如果我有一个lateinit变量,我可以检查它是否使用(this::lateInitVar.isInitialized)初始化,如中所示

但是,如果变量是一个伴生对象,我怎么能这样做呢

e、 g


您可以将其提取到伴生对象内的函数中:

class MyClass {

    companion object {
        lateinit var myGlobalLateInit: String

        fun isMyGlobalLateInitInitialized() = ::myGlobalLateInit.isInitialized
    }

    fun settingVariable() {
        if (!isMyGlobalLateInitInitialized()) {
            myGlobalLateInit = "I am set"
        }

    }

}

就我个人而言,我只是不把它设为lateinit,而是将它设为null,然后检查它
class MyClass {

    companion object {
        lateinit var myGlobalLateInit: String

        fun isMyGlobalLateInitInitialized() = ::myGlobalLateInit.isInitialized
    }

    fun settingVariable() {
        if (!isMyGlobalLateInitInitialized()) {
            myGlobalLateInit = "I am set"
        }

    }

}