如何在不使用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
答案 0 :(得分:4)
this::value
是属性引用。它返回KMutableProperty
。要获得设置器,您需要setter
KMutableProperty
字段。所以你需要这个:
class C {
var field: Int = 1
fun getFieldSetter(): (Int) -> Unit{
return this::field.setter
}
}
答案 1 :(得分:2)
使用this::value.setter
以获取setter参考。
答案 2 :(得分:0)
略短:只需使用 this::value::set