Scala 隐式添加对象方法
有没有办法在scala对象中隐式添加方法 Upd: 例如,未过滤的scala库具有单例对象Scala 隐式添加对象方法,scala,object,implicit,Scala,Object,Implicit,有没有办法在scala对象中隐式添加方法 Upd: 例如,未过滤的scala库具有单例对象Body,其中包含从http请求读取Body的方法Body.string(req:HttpRequest)和Body.bytes(req:HttpRequest)。所以,我想在我的域对象中读取body,比如body.cars(req:HttpRequest) 隐式添加方法是什么意思?这个代码窃贼是否回答了您的问题: implicit def toFunkyString(s: String) = new {
Body
,其中包含从http请求读取Body的方法Body.string(req:HttpRequest)
和Body.bytes(req:HttpRequest)
。所以,我想在我的域对象中读取body,比如body.cars(req:HttpRequest)
隐式添加方法是什么意思?这个代码窃贼是否回答了您的问题:
implicit def toFunkyString(s: String) = new {
def reverseUpper = s.reverse.toUpperCase
}
"Foo".reverseUpper //yields 'OOF'
toFunkyString("Foo").reverseUpper //explicit invocation
请更好地解释您想要什么。
“Foo”
是一个类实例,我的意思是在singleton对象中添加方法,类似于Math.myMethod(1)
。都一样吗?我不明白。。。这是整个源文件吗?像ObjB.scala?或者这是某种方法实现的一部分?我试着在我的代码中加入这一点,但它不起作用…@Eduardobezera我更新了答案,使用2.11.7,但我现在不使用Scala,所以欢迎任何建议。
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)
}
}