gpt4 book ai didi

kotlin - 如何执行伴随对象 lateinit 是初始化检查

转载 作者:行者123 更新时间:2023-12-02 13:32:29 32 4
gpt4 key购买 nike

如果我有一个 lateinit 变量,我可以检查它是否使用 (this::lateInitVar.isInitialized) 初始化,如 https://stackoverflow.com/a/47860466/3286489 所示

但是,如果变量是伴随对象,我怎么能这样做呢?

例如

class MyClass {

companion object {
lateinit var myGlobalLateInit: String
}

lateinit var myLocalLateInit: String

fun settingVariable() {
if (!this::myLocalLateInit.isInitialized) {
myLocalLateInit = "I am set"
}

if (!MyClass::myGloablLateInit.isInitialized) { // This line will error out. How could I set it?
myGloablLateInit = "I am set"
}

}

}

最佳答案

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

class MyClass {

companion object {
lateinit var myGlobalLateInit: String

fun isMyGlobalLateInitInitialized() = ::myGlobalLateInit.isInitialized
}

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

}

}

关于kotlin - 如何执行伴随对象 lateinit 是初始化检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60596734/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com