JavaBeans规范定义了Java的属性是像getXXX()和setXXX()的方法。许多Java工具都依赖这个命名习惯。为了Java的互操作性。将Scala字段加@BeanProperty时,这样的话,getter和setter方法会自动生成。
简单说,对一个属性,使用了@BeanProperty 注解后,会自动生成java的getter和setter方法,这个注解干啥用的呢?应用于什么场景? 比如说,你用json来解析字符串的时候,你要把这个字符串解析到某个类里面,你是需要用到getter和setter方法的,因为,它要反射,然后,你去操作数据库的时候,去操作mysql的时候,有一些框架,把mysql的数据封装到class里面的时候,也是需要用到getter 和setter方法的
1、@BeanProperty
创建一个Bean,使用@BeanProperty注解标识某个属性变量
package unit7
import scala.beans.BeanProperty
class Person {
@BeanProperty var name: String = _
}
尖叫提示:使用@BeanProperty这个注解,并不会影响Scala自己自动生成的getter和setter方法
2、通过getName、setName访问属性
val person = new Person
person setName "haha"
println(person getName)
println(person.name)
person.name_=("heihei")
println(person.name)
尖叫提示
Person将会生成四个方法:
--name:String
--name_=(newValue:String): Unit
--getName():String
--setName(newValue:String):Unit