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

在 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.用官方自己委托也一样。

发表回复

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