scala中的Bean属性为getter和setter

时间:2017-01-20 19:39:06

标签: scala

使用Bean注释,我们获得了类中变量的setter和getter。 但是在scala编程中使用getter和setter如java是一个很好的做法吗?我想知道现实世界中有多少程序员在Scala中使用Bean注释。

1 个答案:

答案 0 :(得分:0)

Scala已经自动为字段创建getter和setter。这是因为字段实际上从不公开。相反,所有字段都是私有的,并创建了一个getter def <fieldname>: <fieldtype>。如果字段为def <fieldname>_=(new: <fieldtype>): Unit,则会创建一个setter var。因为getter方法没有参数列表,所以它的用法看起来像Java字段访问(obj.field),尽管它不是。 Scala还为_=结尾的方法引入了糖,允许用x.y = z符号调用它们。这与x.y_=(z)相同。您可以手动创建这样的方法并查看相同的行为。 (警告:手动定义的方法x_=不会加糖,除非吸气剂x也存在。)

BooleanBeanProperty的功能是简单地为标准Java Bean方式命名的这些方法添加别名(getX / isX和{{1} })。因此,纯Scala不需要它们,但如果由于某种原因需要符合Java标准,则它们很有用。例如。你使用一些反映访问bean属性的库。