Kotlin委托Delegate托管by

Kotlin委托Delegate托管by

Kotlin 复制代码
import kotlin.reflect.KProperty

fun main() {
    var user: String by MyDelegate()
    user = "fly"
    println(user)
}

class MyDelegate {
    private var v: String? = null

    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "property='${property.name}' getValue ${v}"
    }

    operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
        v = value
        println("property='${property.name}' setValue -> $value")
    }
}

property='user' setValue -> fly

property='user' getValue fly

Kotlin 复制代码
import kotlin.properties.*

fun main() {
    var len: Int by Delegates.observable(0) { prop, oldValue, newValue ->
        println("$oldValue -> $newValue")
    }

    len = 2023
    len = 2024
}

0 -> 2023

2023 -> 2024

Delegates.observable追踪观察可变数据更新,Kotlin_zhangphil的博客-CSDN博客**Java观察者模式的场景:一个女孩洗澡,被很多男孩偷看。女孩洞察后,搜索坏男孩,然后继续洗澡。*//*男孩Boy.java*/import java.util.Observable;不定长函参的Java观察者模式更新数据传递import java.util.LinkedList;/** * 抽象被观察者。Java观察者模式 : Observer / Observable_zhangphil的博客-CSDN博客。不定长函参的Java观察者模式更新数据传递_zhangphil的博客-CSDN博客。https://blog.csdn.net/zhangphil/article/details/132088085

相关推荐
Kapaseker13 小时前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
Kapaseker2 天前
一杯美式搞定 Kotlin 空安全
android·kotlin
FunnySaltyFish2 天前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Kapaseker3 天前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
Kapaseker3 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
A0微声z5 天前
Kotlin Multiplatform (KMP) 中使用 Protobuf
kotlin
alexhilton6 天前
使用FunctionGemma进行设备端函数调用
android·kotlin·android jetpack
lhDream6 天前
Kotlin 开发者必看!JetBrains 开源 LLM 框架 Koog 快速上手指南(含示例)
kotlin
RdoZam6 天前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
Kapaseker7 天前
研究表明,开发者对Kotlin集合的了解不到 20%
android·kotlin