我需要抽象 Scala 编译器为带有参数的案例类生成的复制方法。就我而言,我有一个如下所示的保存方法
def save[T<:Data](data:T):T={
// store in db and get the id
val dbId = ...
data.copy(dbId)
}
和一组类似下面的案例类
trait Data
case class Foo (id:Option[Int] = None,name:String,age:Int) extends Data
case class Bar (id:Option[Int] = None, name:String,address:String) extends Data
我如何抽象复制方法,任何替代解决方案将不胜感激。