【发布时间】:2017-11-09 07:56:26
【问题描述】:
我有一些 scala 代码需要使用隐式来序列化和反序列化 json。
我们以前通过放置这些隐式语句(用假人简化)来实现一些工作:
(in some class SomeClass1)
implicit val some1format = Json.format[SomeItem1]
implicit val some2format = Json.format[SomeItem2]
...
全部作为类级变量。然后类中的任何方法都可以从 Json 转换得很好。
但是,我们正在尝试将这些格式的隐式定义移动到单独的对象中。
所以我们创建了一个对象(例如:SomeFormatters),它只包含这些隐式:
object SomeFormatters {
implicit val some1format = Json.format[SomeItem1]
implicit val some2format = Json.format[SomeItem2]
}
当我尝试将此对象导入 SomeClass1 时,我收到一个编译错误,提示未找到 SomeItem1 或 SomeItem2 的反序列化器,即使我正在导入 SomeFormatters。 (IDE 说 SomeFormatters 的导入没有被使用,所以我已经知道有什么不对了。)
让 SomeClass1 了解 SomeFormatters 中的隐式定义的正确方法是什么?
【问题讨论】: