Скала эквивалент числа Java
Я пытаюсь построить иерархию типов для числовых типов доменов. напримерYear
являетсяInt
(который являетсяNumber
),Percentage
этоDouble
, который являетсяNumber
и т.д. Мне нужна иерархия, чтобы я мог позвонитьtoInt
или жеtoDouble
на значения.
Однако иерархия типов Scala для примитивных числовых типов не имеет общего предка, кромеAnyVal
, Это не содержитto{Int, Double}
функции, которые мне нужны.
Самый близкий тип, который я мог найти,Numeric[T]
, который, кажется, существует главным образом для некоторой хитрости компилятора.
В Java все числа получены изNumber
(в том числе произвольной точности).Как определить интерфейс, который обслуживает числовые типы объектов в Scala?
Я в настоящее время взламываю это с помощью утки:
Any {
def toInt: Int
def toDouble: Double
}
которая не только многословна, но и несет затраты на отражение во время выполнения. есть что-нибудь получше?