5
我在Scala 2.9.2中遇到了一個聲明一個依賴返回類型的方法。下面的代碼如何覆蓋一個依賴返回類型的方法?
object DependentTypesQuestion {
def ??? = throw new UnsupportedOperationException
trait X {
trait Y
}
trait Z {
def z(x: X): x.Y
}
object Z extends Z {
override def z(x: X): x.Y = ???
}
}
2.9.2下編譯過程中產生以下錯誤消息:
overriding method z in trait Z of type (x: DependentTypesQuestion.X)x.Y; method z has incompatible type
在2.10.0-M4的問題似乎已得到修復,但不幸的是我的項目是依賴於現在2.9。
是否可以在2.9.2中解決此問題?
(另外,有一個2.9.3的任何前景,其中將包括從2.10反向移植修復?)
我明白了。不幸的是,在我的真實情況下,對象Z是一個內部實現,而外部消費者只能看到特質Z,所以這並不能達到我真正的打字效果。 –
嘗試轉義2.9的時間,我猜。 –