所以我遇到了一些麻煩,我認爲這是特質實現中非常簡單的情況,我希望有一些簡單的解決方案,我錯過了。我想對接受作爲參數的性狀的方法(返回爲只值的具體實施,它被稱爲上的具體類型。斯卡拉限制實施類型的特質方法
trait Foo {
type ConcreteFoo // what to put here?
def combine(that:ConcreteFoo):ConcreteFoo
}
class FooImpl1 extends Foo {
def combine(that:FooImpl1):FooImpl1 = {
// implementation
}
}
class FooImpl2 extends Foo {
def combine(that:FooImpl2):FooImpl2 = {
// implementation
}
}
現在我有一個type Self = FooImpl
的實現類,但我寧願有可能的話是需要照顧它的特點的東西
該解決方案被稱爲'f-bound polymorphism'。在這裏閱讀:https://twitter.github.io/scala_school/advanced-types.html#fbounded – maasg