延伸它的同伴案件類作爲一個例子,在Play框架,一個目的Scala中
你看的情況下類JsPath和它的同伴對象中定義的包play.api.libs.json內部如下
case class JsPath(path: List[PathNode] = immutable.this.Nil) extends Product with Serializable
object JsPath extends JsPath
一般來說,當您使用伴隨案例類擴展對象時,您會獲得什麼好處?
延伸它的同伴案件類作爲一個例子,在Play框架,一個目的Scala中
你看的情況下類JsPath和它的同伴對象中定義的包play.api.libs.json內部如下
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 = ...
}
因密封抽象類GetCurrentCount而到達此處; case對象GetCurrentCount擴展GetCurrentCount;在akka容錯示例中:http://doc.akka.io/docs/akka/snapshot/scala/fault-tolerance-sample.html#full-source-code-of-the-fault-tolerance-sample –