我是Scala的新手,我想了解,在哪里放置Case Classes默认值的复杂逻辑。
case class Job (name: String, timeStamp: Long = <something more complex>) {
...
}
我应该把更复杂的逻辑放在哪里? (例如,不只是分配值)
我是否需要覆盖apply方法或创建伴随对象?
答案 0 :(得分:6)
只需向协同对象添加其他apply
方法:
case class Job(name: String, timeStamp: Long)
object Job {
def apply(name: String): Job = new Job(name, System.currentTimeMillis)
}
val j1 = Job("foo", 345678L)
val j2 = Job("bar")
现在,在apply
内,您可以自由地进行任意复杂的计算,这些计算也可以依赖name
,而不需要多个参数列表。