List[E]
Arnaut 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]
アルゴナウト lib はJsonIdentity[J]
特性を定義します:
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]]