Create common trait for all case classes supportin

2019-04-07 06:56发布

问题:

I'm trying to do something like that:

trait IdentifiableModel[T] {
  self: { def copy(id: ObjectId): T } =>

  val id: ObjectId
}

I've found some other related questions trying to do similar things but they didn't really answer to this question. In my case, I'm trying to copy the case class subclasses of IdentifiableModel that all share an id value

回答1:

Travis Brown has the good answer but didn't reply.

He uses Scala macros: Howto model named parameters in method invocations with Scala macros?