如果我有一个 Lateinit 变量,我可以检查它是否使用 (this::lateInitVar.isInitialized) 进行初始化,如/sf/answers/3350232651/中所示
但是,如果该变量是伴随对象,我该怎么办?
例如
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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其提取到伴随对象内的函数中:
class MyClass {
companion object {
lateinit var myGlobalLateInit: String
fun isMyGlobalLateInitInitialized() = ::myGlobalLateInit.isInitialized
}
fun settingVariable() {
if (!isMyGlobalLateInitInitialized()) {
myGlobalLateInit = "I am set"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |