2017-05-12 58 views
1

如何在不使用kotlin-reflect的情況下獲取屬性設置器的方法引用?屬性設置器的方法引用

基本上,如果我用Java寫的方式我的代碼,這是超級簡單

fun setValue(i: Int) = Unit 
val a: (Int) -> Unit = this::setValue 

var value: Int我越來越

var value = 1 
val a: KMutableProperty0<Int> = this::value 

回答

1

使用this::value.setter爲了得到二傳手參考。

1

this::value是屬性參考。它返回一個KMutableProperty。要獲得二傳手,您需要的setter字段。所以你需要這個:

class C { 
    var field: Int = 1 
    fun getFieldSetter(): (Int) -> Unit{ 
     return this::field.setter 
    } 
}