从外部定义内部类的自我注释

时间:2014-06-24 14:15:49

标签: scala types self-type

第一个代码

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
                          ^

感谢所有帮助。

0 个答案:

没有答案