何かが であるかどうかをパターンマッチで検出することは可能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 ##
}
しかしもちろん、 はandNumeric
のようなもののスーパータイプではなく、型クラスであるため、これは実際には機能しません。の契約に合わせなければならないので、私もできません。Int
Double
def equals[N: Numeric](o: N)
o
Any
equals
Numeric
では、既知のすべてのクラス (私が知らないかもしれないユーザー定義のクラスを含むと思います)をリストアップせずに、どうすればよいでしょうか?