Tôi đang cố gắng để có được một ví dụ upickle cơ bản để làm việc và có vẻ như tôi đang thiếu một cái gì đó ở đây. Tôi muốn thử ra các ví dụ được cung cấp trên the readme page for upickleuPickle và ScalaJS: serialization đặc tính kín
import upickle._
sealed trait A
@key("Bee") case class B(i: Int) extends A
case object C extends A
Sau đó, mã của tôi là:
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)
}
}
Tất cả tôi nhận được là lỗi:
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.
Tôi có hai câu hỏi:
- Làm cách nào tôi có thể thuyết phục được uPickle tha t các đặc điểm là trong cùng một gói? (Vì nó là.)
- Hoặc nếu tôi không thể: làm thế nào tôi có thể xác định thứ bậc với hằng số nguyên?
Mã của tôi đã hoạt động tốt cho đến khi tôi đổi tên gói mà đặc điểm/lớp con của tôi đã có. Vì lý do nào đó, chúng phải được biên dịch theo một thứ tự khác. Tôi đã nghiêm túc gãi đầu. Cám ơn vì cái này. –