marcinmoskala
04/12/2017, 10:34 PMfun <T> mutableLazy(initializer: () -> T): ReadWriteProperty<Any?, T> = MutableLazy<T>(initializer)
private class MutableLazy<T>(val initializer : ()-> T): ReadWriteProperty<Any?, T> {
private var value: T? = null
private var initialized = false
override fun getValue(thisRef: Any?, property: KProperty<*>): T {
if(!initialized) {
value = initializer()
}
return value as T
}
override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
this.value = value
initialized = true
}
}
vach
04/13/2017, 2:19 AM