lateinitVar 无法解析为使用 Kotlin 1.2.10 中的 isInitialized

lateinitVar cannot be resolved to use isInitialized from Kotlin 1.2.10

我想用this feature

示例中最简单的东西对我不起作用:

lateinit val foo = 1
val bar = foo::lateinitVar.isInitialized()

但我得到

unresolved reference lateinitVar

我在 Android-Studio 中通过 gradle 使用 Kotlin 1.2.10(也安装了 Kotlin 1.2.10 插件)

您的代码中没有名称为 lateinitVar 的变量,因此出现错误。再看例子:

this::lateinitVar.isInitialized

this中定义了一个变量lateinitVar,调用该函数。示例中的代码片段可以扩展(清单开头的小加号),如下所示:

class Foo {
    lateinit var lateinitVar: String

    fun initializationLogic() {
        println("isInitialized before assignment: " + this::lateinitVar.isInitialized)
        lateinitVar = "value"
        println("isInitialized after assignment: " + this::lateinitVar.isInitialized)    

    }
}

这可能会更清楚。

此外,请注意 lateinit 不能应用于 val,只能应用于 var