在Scala中,我有一个案例类:
case class MonthSelectionInfo(monthSelection: MonthSelection.Value, customMonth:Int = 0, customYear:Int = 0) {
def this(monthSelection: MonthSelection.Value) = {
this(monthSelection, 0, 0)
}
}
object MonthSelection extends Enumeration {
type MonthSelection = Value
val LastMonth, ThisMonth, NextMonth, CustomMonth = Value
}
当我有一个案例类的实例时,我必须使用
myMonthSelectionInfo.monthSelection
和
myMonthSelectionInfo.eq(newMonthSelection)
得到&设置包含在。
中的MonthSelection实例是否有任何不错的Scala方式来格式化getter& setter看起来更像普通的Java POJO?例如
myMonthSelectionInfo.setMonthSelection(newMonthSelection)
答案 0 :(得分:6)
有@BeanProperty
注释可为字段生成getter和setter。
case class MonthSelectionInfo(@reflect.BeanProperty var monthSelection: MonthSelection.Value)
scala> val ms = MonthSelectionInfo(MonthSelection.LastMonth)
ms: MonthSelectionInfo = MonthSelectionInfo(LastMonth)
scala> ms.setMonthSelection(MonthSelection.ThisMonth)
sscala> ms.getMonthSelection
res4: MonthSelection.Value = ThisMonth
答案 1 :(得分:0)
在面向对象的编程中,getter和setter是大多数人都同意拥有一些现实世界的好处。不幸的是,他们有时候写起来很烦人。它们通常不包含大量代码,但是当你一遍又一遍地写同样的东西时,它会变得非常快。根据我的经验,大多数吸气剂和制定者非常相似,因此必须有一种“更好”的方法来实现相同的结果。
此link可能会对您有所帮助。