为支持copy(id = newId)方法的所有案例类创建共同特征

Seb*_*ber 7 scala case-class

我正在尝试这样做:

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

  val id: ObjectId
}
Run Code Online (Sandbox Code Playgroud)

我发现其他一些相关的问题试图做类似的事情,但他们并没有真正回答这个问题.在我的例子中,我正在尝试复制所有共享id值的IdentifiableModel的case类子类

Seb*_*ber 1

特拉维斯·布朗有很好的答案,但没有回复。

他使用 Scala 宏: 如何使用 Scala 宏对方法调用中的命名参数进行建模?