Ich möchte abstrakten Typ in Merkmal mit <:
und nicht mit =
überschreiben (wie Antwort hier Scala Upper Bounds : value is not a member of type parameter).Kuchenmuster mit übergeordneten abstrakten Typ funktioniert nicht mit oberen Typ Grenzen
Ich möchte Kuchenmuster verwenden, aber das funktioniert nicht, ich verstehe nicht warum?
trait A {
def ping = println("ping")
}
trait Cake {
type T
}
trait S { this: Cake =>
type T = A
def t: T
t.ping
}
OK, dieses Beispiel laufen, aber in meinem realen Anwendungsfall mag ich Typen mit <:
außer Kraft zu setzen und nicht mit =
.Es scheint unmöglich, die t-Funktion zugreifen zu können, warum?
trait S { this: Cake =>
type T <: A
def t: T
t.ping
}
Rückkehr ein Fehler value ping is not a member of S.this.T