对于面向对象的封装 kotlin在编码过程中也不可避免
但是kotlin在默认生成数据类data 的时候 并没有考虑到用户的实际场景需求
如果我们要对用户登录信息封装到data里面应该应该怎么操作呢?
试想:如果用户输入了非法字符,我们在做是否可以在数据类里面把非法字符给排除掉,这里就涉及到了面向对象的封装 私有成员变量并提供get()set()方法以保证
数据的安全性:那么我们这里就可以使用kotlin的自定义访问器get()set()来把不合法规则的脏数据排除。
正确的写法如下:
class LoginBean(userName:String,password: String) {
private var password= password
private var userName=userName
get() {
return password
}
set(value) = if (value.matches(Regex("[a-zA-Z0-9]{6,}"))){
field = value
}else{
field = ""
}
}
网友评论