Kotlin委托Delegate托管by
import kotlin.reflect.KProperty
fun main() {
var user: String by MyDelegate()
user = "fly"
println(user)
}
class MyDelegate {
private var v: String? = null
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
return "property='${property.name}' getValue ${v}"
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
v = value
println("property='${property.name}' setValue -> $value")
}
}
property='user' setValue -> fly
property='user' getValue fly
import kotlin.properties.*
fun main() {
var len: Int by Delegates.observable(0) { prop, oldValue, newValue ->
println("$oldValue -> $newValue")
}
len = 2023
len = 2024
}
0 -> 2023
2023 -> 2024