【发布时间】:2015-05-11 13:16:33
【问题描述】:
在json4s中,代码可以这样写:
import org.json4s._
import org.json4s.jackson.JsonMethods._
...
val x: MonadicJValue = JObject()
这是正确的,因为函数
implicit def jvalue2monadic(jv: JValue) = new MonadicJValue(jv)
由第一行 import org.json4s._ 导入作用域。
(source of jvalue2monadic defination on github)
不过,我尝试了另一段代码,效果也很好:
import org.json4s.{JObject, MonadicJValue}
import org.json4s.jackson.JsonMethods.parse
...
val x: MonadicJValue = JObject()
由于没有将隐式函数导入到这个作用域中,所以我不知道它是如何工作的!
【问题讨论】:
-
我相信是因为JObject和implicit是在同一个对象中定义的,但我不确定
-
@Daenyth 我自己尝试了一个小演示,像 json4s 一样定义我的类和隐式函数,但事实证明我的隐式根本不起作用。所以我不认为这是因为它们是在同一个对象中定义的。