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
。
我想用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
。