簡體   English   中英

在Scala中將對象擴展到特征內

[英]Extend object inside of trait in Scala

我有以下代碼:

trait AcceptExtractors {

  /**
   * Common extractors to check if a request accepts JSON, Html, etc.
   * Example of use:
   * {{{
   * request match {
   *   case Accepts.Json() => Ok(toJson(value))
   *   case _ => Ok(views.html.show(value))
   * }
   * }}}
   */
  object Accepts {
    import play.api.http.MimeTypes
    val Json = Accepting(MimeTypes.JSON)
    val Html = Accepting(MimeTypes.HTML)
    val Xml = Accepting(MimeTypes.XML)
    val JavaScript = Accepting(MimeTypes.JAVASCRIPT)
  }

}

有什么方法可以擴展Accepts對象嗎?

謝謝!

不。

Object是單個值。 如果可以擴展,則它們不會是單例(*)。 生成的代表它們的類是最終的,因此,即使您知道它的名稱(不難發現),也無法對其進行擴展。

(*) Object s為唯一真正單身當在全局范圍限定或內的其它嚴格嵌套object領先回全球性的。

不可以,但是您可以使“接受”特征可以擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM