[英]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.