Próbuję uzyskać podstawowy przykład do pracy i wydaje mi się, że czegoś tutaj brakuje. Chcę wypróbować przykład podany w the readme page for upickleuPickle i ScalaJS: serializacja serii zabezpieczonej
import upickle._
sealed trait A
@key("Bee") case class B(i: Int) extends A
case object C extends A
Następnie, mój kod jest:
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)
}
}
All I get to błąd:
The referenced trait [[A]] does not have any sub-classes. This may happen due to a limitation of scalac (SI-7046) given that the trait is not in the same package. If this is the case, the hierarchy may be defined using integer constants.
Mam dwa pytania:
- Jak mogę przekonać się, z jakiego t cecha jest w tym samym pakiecie? (Ponieważ jest.)
- Lub jeśli nie mogę: jak zdefiniować hierarchię ze stałymi całkowitymi?
Mój kod działał poprawnie, dopóki nie zmieniłem nazwy pakietu, w którym znajdowała się moja cecha/podklasy. Z jakiegoś powodu musiały zostać skompilowane w innej kolejności. Poważnie podrapałem się po głowie. Dzięki za to. –