我想检查以任何顺序获取的两个变量是否可以配对到特定对中。基本上如下,只是因为运行时类型擦除而无法正常工作
def combination[A,B](x: Any, y: Any): Option[(A, B)] =
(x, y) match {
case (a: A, b: B) => Some(a, b)
case (b: B, a: A) => Some(a, b)
case _ => None
还有另一种方法可以做同样的工作......
答案 0 :(得分:5)
注意,由于您的消息中不清楚,如果您想要对一对常量(a,b)进行模式匹配,您可能需要考虑反向标记而不是你在做什么:
case (`a`, `b`) => Some(a, b)
另一方面,如果您尝试以任何顺序检索一对任何类型(A,B)的值的元素,则可以对非基本类型(即{{1}的子类型)执行此操作}):
AnyRef