例如,在 Play 框架中,
您会在 play.api.libs.json 包中看到一个案例类 JsPath 及其伴生对象定义如下
case class JsPath(path: List[PathNode] = immutable.this.Nil) extends Product with Serializable
object JsPath extends JsPath
一般来说,当你用它的伴随案例类扩展一个对象时,你会得到什么好处?
最佳答案
除了一些混淆之外没有任何好处,并且您可以将 JsPath
对象用作空 JsPath
。如果您需要一个空对象,如果您给它一个单独的名称(相当于 List
的 Nil
),它可能更具可读性:
object EmptyJsPath extends JsPath(Nil)
或者你在同伴上定义一个
empty
方法(就像大多数其他集合类一样):object JsPath {
def empty = ...
}
关于scala - 一个对象在 Scala 中扩展了它的伴随案例类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17553888/