我想使用这个功能
示例中最简单的方法对我不起作用:
lateinit val foo = 1
val bar = foo::lateinitVar.isInitialized()
但我越来越
unresolved reference lateinitVar
我在 Android-Studio 中通过 gradle 使用 Kotlin 1.2.10(也安装了 Kotlin 1.2.10 插件)
我想使用这个功能
示例中最简单的方法对我不起作用:
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
lateinitVar
中定义了一个变量this
,调用该函数。示例中的代码片段可以展开(清单开头的小加号),如下所示:
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
.