在scala中使用@BeanProperty或Create Set&获取正确方法
答案 0 :(得分:1)
在函数式编程和Scala中,你应该总是喜欢不可变对象。但是如果你需要改变对象状态,那么我会坚持使用(g | s)etters。在这种情况下,您可以在不更改对象的内部状态的情况下返回具有已修改状态的新对象。
class MyClass(val name) {
def setName(newName: String) = new MyClass(newName)
}
这种方式可以保留不变性并为您提供设置器:setName(String)
和getter:obj.name
@BeanPropery
用于需要与某些Java代码的高级互操作性时,它可以帮助您快速为代码生成(g | s)etters,但它有一些限制因为您无法为此命名你想要的方法。
虽然我建议使用复制方法使用案例类:
case class Person(name: String, age)
val me = Person("Alex", 23) // create an object
val afterBD = me.copy(age = 24)
相同的语义,但纯粹的功能方法没有任何可变的内部状态。
至于Scala中的Spring框架。我从来没有和它一起工作(感谢上帝=)),但这个主题有一个很好的post