委托属性 可观察属性 Observable

2018-10-24  本文已影响0人  Taylor_xu

1 可观察属性 Observable  

可在 onlineCode  上运行查看结果

import kotlin.properties.Delegates

class User {

//observable 返回读写属性的属性委托,该属性在更改时调用指定的回调函数。

var name: String by Delegates.observable("无初始化值"){

    prop,old,new ->

        println("catch  ->$old -> $new")

}

//vetoable 返回读写属性的属性委托,该属性在更改时调用指定的回调函数,允许回调否决修改。

var age:Int by Delegates.vetoable(0){

    _,old,new ->

        if(new>old) true else throw IllegalArgumentException("New value must be larger than old value.")

}

}

fun main(args: Array<String>) {

val user = User()

user.name = "first"

user.name = "second"

    user.age=15

    println(user.age)

    user.age=13

    println(user.age)

}

上一篇 下一篇

猜你喜欢

热点阅读