对象在Scala中扩展其伴随案例类

时间:2013-07-09 16:53:32

标签: scala playframework

例如,在Play框架中,

您可以在包play.api.libs.json中看到一个案例类JsPath及其伴随对象,如下所示

case class JsPath(path: List[PathNode] = immutable.this.Nil) extends Product with Serializable

object JsPath extends JsPath

一般来说,使用伴随案例类扩展对象会带来什么好处?

1 个答案:

答案 0 :(得分:1)

除了一些混淆之外没有任何好处,并且您可以将JsPath对象用作空JsPath。如果你需要一个空对象,如果你给它一个单独的名字(相当于List的{​​{1}}),它可能更具可读性:

Nil

或者在随播广告上定义object EmptyJsPath extends JsPath(Nil) 方法(与大多数其他集合类一样):

empty