我正在尝试使用Pickling序列化Scala类。
import scala.pickling.Defaults._
import scala.pickling.json._
trait Tr[T<: Tr[T]]{}
class Sub(z: Int) extends Tr[Sub] {}
class Data(b: Tr[_])
val message = new Data(new Sub(1)).pickle.value
我在编译时收到此错误:
错误:.....类型参数[_ $ 2]不符合特质Tr的类型 参数界限[T&lt;:Tr [T]] val message = new Data(new Sub(1))。pickle.value
答案 0 :(得分:1)
如何使用以下类层次结构:
trait Tr[T <: Tr[T]]
case class Sub(z: Int) extends Tr[Sub]
case class Data[T <: Tr[T]](b: T)
val message = Data(Sub(1)).pickle.value
像那样腌制:
{
"$type": "Data[Sub]",
"b": {
"z": 1
}
}