第一个代码
trait Service {
def what: String
}
class ServiceImpl extends Service {
def what = "ServiceImpl"
}
现在,让我们说我想用self type annotation
定义内部类,但类型将从外部类传递,如下所示:
class Foo[T <: Service] {
class Bar {this: T => }
val bar: Option[Bar] = Some(new Bar with T)
}
我希望能够在此Bar类中调用Service
trait中定义的方法。但是这样定义它会给我一个错误:
<console>:10: error: class type required but T found
val bar = new Bar with T
^
感谢所有帮助。