在 scala 中使用 @BeanProperty 或 Create Set & Get 方法,这是正确的方法
问问题
251 次
1 回答
1
一般来说,在函数式编程和 Scala 中,您应该始终更喜欢不可变对象。但是如果您需要更改对象状态,那么我会坚持使用 (g|s)setters。因为在这种情况下,您可以在不更改对象内部状态的情况下返回具有修改状态的新对象。
class MyClass(val name) {
def setName(newName: String) = new MyClass(newName)
}
这种方式保持不变性并为您提供 setter:setName(String)
和 getter:obj.name
@BeanPropery
当您需要与某些 Java 代码进行高级别的互操作性时使用它,它可以帮助您快速为您的代码生成 (g|s)setters,但它有一些限制,因为您无法为这些方法指定您想要的名称。
虽然我建议使用带有复制方法的案例类:
case class Person(name: String, age)
val me = Person("Alex", 23) // create an object
val afterBD = me.copy(age = 24)
相同的语义,但纯粹是函数式的方法,没有任何可变的内部状态。
至于 Scala 中的 Spring 框架。我从来没有使用过它(感谢上帝=)),但是关于这个主题有一篇很好的帖子
于 2013-07-11T06:59:27.390 回答