我有下面的類層次結構的元組:斯卡拉 - 模式匹配相關類型
class A
class B extends A
class C extends A
然後,有另一類這需要這些類的實例,有一個方法,其中,2箱子模式匹配有可能是這樣的:
class D (one: A, two: A) {
def work {
(one, two) match {
case (o, t): (B, B) => ... blablabla
case (o, t): (B, C) => ... blablabla
case _ =>
}
}
}
然而,當它應該贊成第二種情況下(B, C)
的解決匹配,它試圖解決它(B, B)
並用類轉換異常是C cannot be cast to B
出現。爲什麼?該怎麼辦?我怎樣才能解決這個問題?
我一直在努力尋找正確的語法......謝謝! – Benoit 2014-02-27 09:58:43