scala将更新字段复制到案例类中
我想将一些字段更新到case类中。我有两个物体c1和c2。要通过c1将字段更新为c2吗 实现了下一个解决方案。使用scala将更新字段复制到案例类中,scala,Scala,我想将一些字段更新到case类中。我有两个物体c1和c2。要通过c1将字段更新为c2吗 实现了下一个解决方案。使用copy和if语句更新 case class Ex(id: Option[Long] = None, id2: Option[String] = None) { def updateFields(e: Ex) = { this.copy( id = if (e.id.isDefined) e.id else id, id2 =
copy
和if
语句更新
case class Ex(id: Option[Long] = None, id2: Option[String] = None)
{
def updateFields(e: Ex) = {
this.copy(
id = if (e.id.isDefined) e.id else id,
id2 = if (e.id2.isDefined) e.id2 else id2,
)
}
}
是否有执行此操作的最佳实践
比尔 您可以使用
Option.orElse
方法
case class Ex(id: Option[Long] = None, id2: Option[String] = None) {
def updateFields(e: Ex) = {
this.copy(id = e.id.orElse(id), id2 = e.id2.orElse(id2))
}
}
您可以使用
Option.orElse
方法
case class Ex(id: Option[Long] = None, id2: Option[String] = None) {
def updateFields(e: Ex) = {
this.copy(id = e.id.orElse(id), id2 = e.id2.orElse(id2))
}
}