我正试图让一个基本的upickle示例工作起来,但我似乎漏掉了一些东西。我想尝试一下在upickle的readme页面提供的示例。
import upickle._
sealed trait A
@key("Bee") case class B(i: Int) extends A
case object C extends A
然后,我的代码是:
object Model {
def main(args: Array[String]): Unit = {
val a = B(5): A
println(a)
val out = write(a)
println(out)
val a2 = read[A](out)
println(a2)
println(a == a2)
}
}
我一直收到错误信息:
引用的特征[[A]]没有任何子类。这可能是由于scalac(SI-7046)的限制,因为该特征不在同一个包中所致。如果是这种情况,则可以使用整数常量来定义层次结构。
我的两个问题是:
1.如何说服uPickle特征与在同一个包中?(因为它是。)
2.或者如果我不能:如何使用整数常量定义层次结构?