Nuru
11/08/2020, 1:38 PMVampire
11/08/2020, 3:48 PMVampire
11/08/2020, 3:50 PMfun Any?.isInitialized() = this != null
fun main() {
var foo: String? = null
println(foo.isInitialized())
foo = "bar"
println(foo.isInitialized())
}
=>
false
true
Vampire
11/08/2020, 3:53 PMval Any?.initialized get() = this != null
fun main() {
var foo: String? = null
println(foo.initialized)
foo = "bar"
println(foo.initialized)
}
Brandon Trautmann
11/08/2020, 4:01 PMNuru
11/08/2020, 5:52 PMArchie
11/08/2020, 6:11 PMvar
/ val
. Its defined against KProperty0<*>
. If you notice, to check if a property is initialized, you have to
lateinit var lazyProp: String
fun check() {
::lazyProp.isInitialized
// ::lazyProp returns KProperty<String>
}
Nuru
11/08/2020, 7:43 PM