【发布时间】:2019-01-26 06:46:42
【问题描述】:
我正在使用 circe 通过deriveDecoder 提供的半自动解码器推导。我有一些自定义 ADT,我想将自己的解码器传递给 circe,以便在解析隐式解码器时使用。
package object json {
implicit val myAdtDecoder: Decoder[MyAdt] = ...
}
这可行,尽管我现在需要在我调用 circe 的 deriveDecoder 的文件中进行两个导入。
有没有一种方法可以设置这个,所以我只需要一个导入? circe 的 deriveDecoder 方法的一种“代理”,它仍然会使用我的隐式 MyAdt?
package object json {
implicit val myAdtDecoder: Decoder[MyAdt] = ...
implicit def deriveDecoder[T]: Decoder[T] = ...
}
请注意,如果我在此处明确指定 T,则解决此问题不会有任何问题,但我想保持其通用性,以便它适用于任何 T。
【问题讨论】: