我有以下代码:
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对象?
谢谢!
答案 0 :(得分:3)
不。
Object
是单个值。如果他们可以延长,他们就不会是单身人士(*)。生成代表它们的类是最终的,所以即使你知道它的名字(不难发现),你也无法扩展它。
(*)Object
只在全局范围内定义时才是真正的单例,或者严格嵌套在其他object
中,导致回到全局范围。
答案 1 :(得分:1)
不,但你可以让Accepts成为你可以延伸的特质。