Kotlin有委托属性这一非常好的特性。但我正在想如何获取和设置值。假设我想要获取被委托的属性的值,在get()方法中我该如何访问该值?
以下是我实现的一个示例:
class Example() {
var p: String by DelegateExample()
}
class DelegateExample {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
return "${property.name} "
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
println("${value.trim()} '${property.name.toUpperCase()} '")
}
}
fun delegate(): String {
val e = Example()
e.p = "NEW"
return e.p
}
我无法理解的主要问题是,我该如何将值设置为分配委托类的实际属性。当我将"NEW"分配给属性
p
时,我该如何将该值存储到变量p
或者通过get读取传递给p
的新值呢?我是否错过了一些基本内容?非常感谢您的帮助。提前致谢。