Equivalente ao Scala do número de Java
Eu estou tentando construir uma hierarquia de tipo para tipos de domínio numérico. por exemplo. umaYear
é umInt
(que é umNumber
), umaPercentage
é umDouble
, que é umNumber
, eu preciso da hierarquia para poder ligartoInt
outoDouble
nos valores.
No entanto, a hierarquia de tipos Scala para os tipos numéricos primitivos não possui um ancestral comum, excetoAnyVal
. Isso não contém oto{Int, Double}
funções que eu preciso.
O tipo mais próximo que encontrei éNumeric[T]
, que parece existir principalmente para alguns truques de compilador.
Em Java, todos os números derivados deNumber
(incluindo os de precisão arbitrária).Como se define uma interface que atende a tipos numéricos de objetos no Scala?
Atualmente estou hackeando-o com a digitação de pato:
Any {
def toInt: Int
def toDouble: Double
}
que não é apenas prolixo, mas incorre em custos de reflexão em tempo de execução. Existe coisa melhor?