模式匹配是否可以检测某物是否为Numeric
? 我想做以下事情:
class DoubleWrapper(value: Double) {
override def equals(o: Any): Boolean = o match {
case o: Numeric => value == o.toDouble
case _ => false
}
override def hashCode(): Int = value ##
}
但当然这并没有真正起作用,因为它不是和之类Numeric
的东西的超类型,它是一个类型类。我也不能做类似的事情,因为必须符合合同。Int
Double
def equals[N: Numeric](o: N)
o
Any
equals
那么如何在不列出每个已知Numeric
类的情况下做到这一点(包括,我猜,我什至可能不知道的用户定义的类)?