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

相关推荐
Kapaseker25 分钟前
用Compose做一个视频下载软件—开篇
前端·kotlin
移动开发者1号3 小时前
Protobuf序列化性能全面对比分析
android·kotlin
移动开发者1号3 小时前
Kotlinx序列化多平台兼容性详解
android·java·kotlin
葱段19 小时前
【Compose】Android Compose 监听TextField粘贴事件
android·kotlin·jetbrains
雨白19 小时前
Kotlin 委托与泛型核心技巧
kotlin
webbin1 天前
Kotlin 协程与线程的使用,以及优劣性分析
android·kotlin
移动开发者1号1 天前
Kotlin实现文件下载断点续传(RandomAccessFile全解析)
android·kotlin
移动开发者1号1 天前
Gson TypeAdapter处理复杂JSON结构
android·kotlin
陈旭金-小金子2 天前
发现 Kotlin MultiPlatform 的一点小变化
android·开发语言·kotlin
移动开发者1号2 天前
Android 多 BaseUrl 动态切换策略(结合 ServiceManager 实现)
android·kotlin