【发布时间】:2016-03-21 23:48:46
【问题描述】:
有下一个问题。我有一个名为 Foo 的案例类:
case class Foo(a: Int, b: List[Int])
当我需要创建此类的 AST 时,我会调用 Extraction.decompose(<instance of Foo>) 并获取 foo 实例的 AST 表示。
但如果我将字段 b 设为私有
case class Foo(a: Int, private val b: List[Int])
我得到org.json4s.package$MappingException: Can't find ScalaSig for class java.lang.Object 异常。
这仅适用于作为集合的私有字段。
如果私有字段是简单对象,它根本不会出现在 AST 中。 为什么会发生这个异常?
编辑 如果我有一个使用 val 或惰性 val 字段扩展某些特征的案例类,则会出现同样的异常:
trait Bar {
val list: List[Int] = List(1,2,3)
}
case class Example(field: Double) extends Bar
【问题讨论】:
-
尝试使用 bigint 而不是 int。
-
我问的不是如何解决这个问题,而是问为什么会发生这种情况。不得不提的是,这适用于 String