如何強制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