kotlin标准委托之阻止属性的赋值操作

复制代码
import kotlin.properties.Delegates

fun main(arg: Array<String>) {
    val user = user()
    user.name="two"
    println(user.name)
    user.name="new"
    println(user.name)
}

class user{
    var name:String by Delegates.vetoable("one"){
        property, oldValue, newValue ->
        var result =true
        println("旧值 $oldValue 新值 $newValue")
        if (newValue.equals("new")){
            result=false
            println("name属性不能是new")
        }

        result
    }
}
复制代码

输出:

旧值 one 新值 two
two
旧值 two 新值 new
name属性不能是new
two

总结:使用vetoable函数,响应器会返回一个布尔值,如果返回true,表示允许赋值,false则保留原来的值

posted on   LoaderMan  阅读(483)  评论(0编辑  收藏  举报

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示