I want to use this feature
the simplest thing like in the example does not work for me:
lateinit val foo = 1
val bar = foo::lateinitVar.isInitialized()
But I am getting
unresolved reference lateinitVar
I am using Kotlin 1.2.10 via gradle in Android-Studio (also the Kotlin 1.2.10 plugin installed there)
There’s no variable with name lateinitVar in your code, thus the error. Look at the example again:
this::lateinitVar.isInitialized
There’s a variable lateinitVar defined in this, which the function is called on. The code snippet in the example can be expanded (little plus sign at the beginning of the listing) and looks as follows:
class Foo {
lateinit var lateinitVar: String
fun initializationLogic() {
println("isInitialized before assignment: " + this::lateinitVar.isInitialized)
lateinitVar = "value"
println("isInitialized after assignment: " + this::lateinitVar.isInitialized)
}
}
This might make it more clear.
Also, be aware that lateinit can’t be applied to val but only var.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With