考虑一些具有多个内部类的类。共同的功能被分解为特征。
case class A[T](a: T) {
case class B(b: T) extends Inner
case class C(c: T) extends Inner
trait Inner {
case class D(d: T)
}
}
有没有办法将特质Inner
混合到自己的父级A
中?
// compile error "this can be used only in a class, object, or template.
case class A[T](a: T) extends this.Inner {
...
}
// compile error "not found: value self"
case class A[T](a: T) extends self.Inner { self =>
...
}
// compile error "illegal cyclic reference involving class A"
case class A[T](a: T) extends A[T]#Inner {
...
}