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则保留原来的值
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步