Is it possible for a pattern match to detect if something is a Numeric
? I want to do the following:
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 ##
}
But of course this doesn't really work because Numeric
isn't the supertype of things like Int
and Double
, it's a typeclass. I also can't do something like def equals[N: Numeric](o: N)
because o
has to be Any
to fit the contract for equals
.
So how do I do it without listing out every known Numeric
class (including, I guess, user-defined classes I may not even know about)?