【问题标题】:Error in serializing classes with traits on Scala using pickling?使用酸洗在Scala上序列化具有特征的类时出错?
【发布时间】:2017-03-01 09:17:15
【问题描述】:

我正在尝试使用 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 <: tr val message="new" data sub>

【问题讨论】:

  • 这工作:class Data[T&lt;: Tr[T]](val b: Tr[T])

标签: scala class serialization pickle traits


【解决方案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
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多