首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对属性setter的方法引用

对属性setter的方法引用
EN

Stack Overflow用户
提问于 2017-05-12 16:50:46
回答 3查看 1.1K关注 0票数 4

我怎样才能在不使用kotlin-reflect的情况下获得对属性setter的方法引用?

基本上,如果我用java的方式写代码,那就太简单了。

代码语言:javascript
复制
fun setValue(i: Int) = Unit
val a: (Int) -> Unit = this::setValue

但是对于var value: Int我得到了

代码语言:javascript
复制
var value = 1
val a: KMutableProperty0<Int> = this::value
EN

回答 3

Stack Overflow用户

发布于 2017-05-12 17:54:18

this::value是一个属性引用。它返回一个KMutableProperty。要获得设置器,您需要KMutablePropertysetter字段。所以你需要这个:

代码语言:javascript
复制
class C {
    var field: Int = 1
    fun getFieldSetter(): (Int) -> Unit{
        return this::field.setter
    }
}
票数 4
EN

Stack Overflow用户

发布于 2017-05-12 17:54:16

使用this::value.setter来获取设置器引用。

票数 3
EN

Stack Overflow用户

发布于 2021-01-28 00:26:09

稍微短一点:只需使用this::value::set

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43933370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档