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

相关推荐
Fushize10 小时前
多模块架构下的依赖治理:如何避免 Gradle 依赖地狱
android·架构·kotlin
Jomurphys11 小时前
Kotlin - 类型别名 typealias
android·kotlin
zh_xuan11 小时前
kotlin lazy委托异常时执行流程
开发语言·kotlin
我有与与症16 小时前
从页面加载过程看 Kuikly 的多线程架构
kotlin
JMchen12320 小时前
Android UDP编程:实现高效实时通信的全面指南
android·经验分享·网络协议·udp·kotlin
JMchen12321 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
JMchen1231 天前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
儿歌八万首2 天前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
消失的旧时光-19432 天前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
有位神秘人2 天前
kotlin与Java中的单例模式总结
java·单例模式·kotlin