我想List[E]
使用 argonaut lib 将类型字段编码为 json。
sealed trait Msg[E] {
val contents: List[E]
def send(): Unit = {
val json = contents.asJson
println("Sending json: " + json.toString())
}
}
然后我有一个StringMsg
案例类:
case class StringMsg(contents: List[String]) extends Msg[String]
argonaut 库定义了JsonIdentity[J]
trait:
trait JsonIdentity[J] {
val j: J
/**
* Encode to a JSON value using the given implicit encoder.
*/
def jencode(implicit e: EncodeJson[J]): Json =
e(j)
}
当我创建一个新实例StringMsg
并调用该send()
方法时,出现以下错误:
StringMsg(List("a","b")).send()
找不到参数 e 的隐式值:argonaut.EncodeJson[List[E]]