Ссылка на метод для установки свойства

Как я могу получить ссылку на метод для установщика свойства без использования kotlin-рефлекса?

В принципе, если я напишу свой код в Java, это очень просто

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

Но для var value: Int я собираюсь

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

3 ответа

Немного короче: просто используйте this::value::set

this::value это ссылка на свойство. Возвращает KMutableProperty, Чтобы получить сеттер, вам понадобится setter поле KMutableProperty, Так что вам нужно это:

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

Использование this::value.setter для того, чтобы получить ссылку на установщик.

Другие вопросы по тегам