Мой класс является универсальным и определяет iv
как MHashMap[DateTime, T]
.MHashMap
- это псевдоним для scala.collection.mutableHashMap
.Затем я использую этот код для предоставления минимальной функциональности поиска
def minimum: BigDecimal = {
iv match {
case dtMcM: MHashMap[DateTime, MyCustomClass] => dtMcM.minBy(_._2.bdField)._2.bdField
case dtBdM: MHashMap[DateTime, BigDecimal] => dtBdM.minBy(_._2)._2
case dtDlM: MHashMap[DateTime, Double] => dtDlM.minBy(_._2)._2.toBigDecimal
case dtItM: MHashMap[DateTime, Int] => dtItM.minBy(_._2)._2
case _ => throw new IllegalArgumentException("Unsupported underlying type")
}
}
Но компилятор жалуется:
No implicit Ordering defined for T with Int.
case dtItM: MHashMap[DateTime, Int] => dtItM.minBy(_._2)._2
И то же самое для случаев Double
и BigDecimal
.
Почему компилятор не может даже распознать Int
, чтобы применить порядок по умолчанию?Любопытно, что у него, похоже, нет проблем с полем BigDecimal моего собственного пользовательского класса.