模式匹配是否可以检测某物是否为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的东西的超类型,它是一个类型类。我也不能做类似的事情,因为必须符合合同。IntDoubledef equals[N: Numeric](o: N)oAnyequals
那么如何在不列出每个已知Numeric类的情况下做到这一点(包括,我猜,我什至可能不知道的用户定义的类)?