我怎样才能在不使用kotlin-reflect的情况下获得对属性setter的方法引用?
基本上,如果我用java的方式写代码,那就太简单了。
fun setValue(i: Int) = Unit
val a: (Int) -> Unit = this::setValue但是对于var value: Int我得到了
var value = 1
val a: KMutableProperty0<Int> = this::value发布于 2017-05-12 17:54:18
this::value是一个属性引用。它返回一个KMutableProperty。要获得设置器,您需要KMutableProperty的setter字段。所以你需要这个:
class C {
var field: Int = 1
fun getFieldSetter(): (Int) -> Unit{
return this::field.setter
}
}发布于 2017-05-12 17:54:16
使用this::value.setter来获取设置器引用。
发布于 2021-01-28 00:26:09
稍微短一点:只需使用this::value::set
https://stackoverflow.com/questions/43933370
复制相似问题