本文介绍: 自我记录,不一定对

在 Kotlin 中,委托属性通过 by 关键字实现的,但是这个语法只能用于类的属性而不是局部变量委托属性通常用于类的属性声明中,例如

import kotlin.reflect.KProperty

class Delegate {
    private var storedValue: String? = null

    operator fun getValue(thisRef: Any?, property: KProperty<*&gt;): String? {
        // 读取属性时的逻辑
        return storedValue
    }

    operator fun setValue(thisRef: Any?, property: KProperty<*&gt;, value: String?) {
        // 写入属性时的逻辑
        storedValue = value
    }
}

class Example {
    var property: String? by Delegate()
}

fun main() {
    val example = Example()
    example.property = "Hello, Kotlin!"
    println(example.property)
}

,但是 委托定义是写在方法中,不是class 类中setValue的thisRef永远是null。。

2.用官方自己委托也一样。

原文地址:https://blog.csdn.net/qq_28909387/article/details/134646682

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_24482.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注