如何强制scala中的特征只能被对象(不是类,特征等)扩展?强制性状由一个对象实现
我有以下星座:
trait Outer { self: SomeOtherClass =>
def member: Inner.type = Inner
/* some other methods... */
trait Inner { iself =>
def parent: self.type = self
/* other methods... */
}
}
我的问题是:我怎么能强制执行内部特质必须通过的对象来实现(如对象内延伸内{...})?
我希望每个实现Outer的类都有一个内部对象,它携带一些状态+从外部获取内部的可能性,反之亦然。
最好的问候,
约亨
编辑:
例子:
// compiles
class C extends Outer {
object Inner extends Inner { ... }
}
// doesn't compile
class C extends Outer {
class Inner extends Inner { ... }
}
不要你的意思'对象我的O扩展Outer'? – pedromss
[编辑问题的例子] – fxk8y