Scala :проверка, является ли объект числовым

Возможно ли сопоставление с образцом определить, является ли что-то 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классов (, включая, я думаю, определяемые пользователем -классы, о которых я могу даже не знать )?

14
задан dhg 18 August 2012 в 17:34
поделиться