一些案例类共享一些常见属性,一个函数使用这些公共属性。我想重构它们以便
我试图在这些案例类的顶部创建一个特征。这种方法解决了第二个问题,但不是第一个问题。
有什么建议吗?
答案 0 :(得分:1)
最接近你想要的,不使用反射,可能是这样的:
trait Foo[T <: Foo[_]] {
def foo: String
def copyMe(foo: String): T
}
case class Bar(foo: String, bar: String) extends Foo[Bar] {
def copyMe(foo: String) = copy(foo=foo)
}