我有下面的类层次结构的元组:斯卡拉 - 模式匹配相关类型
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