5

例如,在 Play 框架中,

您会在 play.api.libs.json 包中看到一个案例类 JsPath 及其伴生对象,其定义如下

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

object JsPath extends JsPath

一般来说,当你用它的同伴案例类扩展一个对象时,你会得到什么好处?

4

1 回答 1

2

除了一些混乱之外没有任何好处,并且您可以将JsPath对象用作 empty JsPath。如果您需要一个空对象,如果给它一个单独的名称(相当于List's Nil),它可能更具可读性:

object EmptyJsPath extends JsPath(Nil)

或者您在伴侣上定义一个empty方法(就像大多数其他集合类一样):

object JsPath {
  def empty = ...
}
于 2013-07-09T18:23:40.107 回答