有没有办法在scala对象中隐式添加方法?
UPD:
例如,Unfiltered scala库具有单个对象Body
,其中包含来自http请求的读取主体的方法Body.string(req: HttpRequest)
和Body.bytes(req: HttpRequest)
。所以,我想在我的域对象中读取body,例如Body.cars(req:HttpRequest)
。
答案 0 :(得分:17)
import scala.language.implicitConversions
object ObjA
object ObjB {
def x = 1
}
object Main {
implicit def fromObjA(objA: ObjA.type) = ObjB
def main(args: Array[String]): Unit = {
println(ObjA.x)
}
}
答案 1 :(得分:11)
隐式添加方法是什么意思?此代码段是否回答了您的问题:
implicit def toFunkyString(s: String) = new {
def reverseUpper = s.reverse.toUpperCase
}
"Foo".reverseUpper //yields 'OOF'
toFunkyString("Foo").reverseUpper //explicit invocation