0
我使用Play2 + Scala + ReactiveMongo構建Web應用程序。由於mongodb
不要求所有文檔具有相同的結構,因此我使用Options
作爲參數來實現模型的案例類大量使用。例如:Play2 Scala模型 - 合併對象
case class PersonInfo(address: Option[String],
telephone: Option[String],
age: Option[Int],
job: Option[String])
case class Person(id: UUID, name: String, info: PersonInfo)
現在假設我想在一個更新功能合併兩個PersonInfo
對象,例如。我現在的問題是:
val updPInfo = old.copy(address = new.address orElse address,
telephone = new.telephone orElse telephone,
age = new.age orElse age,
job = new.job orElse job)
這樣,我有了在那裏他們被new
對象,老值,其餘的指定新值的對象。
這實際上工作正常,但看到參數列表增長時有點難看。
有沒有更好的方法來做到這一點?