我正在阅读结构化JSON,使用Play Frameworks的JSON Reads来构建带有案例类的对象图.
一个例子:
case class Foo (
id: Int,
bar_id: Int,
baz_id: Int,
x: Int,
y: String
)
{
var bar: Bar = null
var baz: Baz = null
}
Run Code Online (Sandbox Code Playgroud)
在建造Foo之后,我必须稍后回来并通过设置bar和baz来装饰它.这些在其他JSON文件中定义,仅在所有解析完成时才知道.但这意味着Foo不可能是不可变的.
Scala中制作不可变对象的"正确"方式是什么,然后是它的装饰版本,而不是一遍又一遍地重复Foo的每个字段?
我知道几种感觉错误的方法:
当然,Scala必须有办法让人们用更简单的对象组成更复杂的不可变对象,而不必手工复制它们的每一部分?