出处:在创建实体类时,自动生成,用以替代属性名称
例:
class PersonBean {
var name: String = ""
get() {
if (field.length > 1) {
return field
} else {
return "name invalid"
}
}
set(value) {
if (value.length > 1) {
field = value
} else {
field = ""
}
}
}
由于getter()和setter()是自动生成的,一般不需要去添加,但是需要自定义返回结果时,需要注意,不能使用属性的名称。
kotlin在创建一个属性时,会自动生成一个field,用来代替属性名,如field相当于上边的name。
name代表的含义是getName(),
name=代表的含义是setName(String name)
这样一来,在自定义getter时,使用name,和自定义setter时,使用name=,就会循环调用getter和setter,造成内存溢出,而使用field就可以避免这个问题了。