Я пытаюсь создать обобщенный c класс, который принимает только java .math.BigDecimal или Long. Вот код:
class myClass[T]()
{
def display( x : T) = {
println(x.doubleValue())
}
}
val input = new java.math.BigDecimal(100)
// val input = 100L
val x = new myClass[java.math.BigDecimal]()
x.display(input)
Ясно, что у меня будет эта ошибка: ScalaFiddle. scala: 22: ошибка: значение doubleValue не является членом параметра типа T.
Я пытался игра с неявным преобразованием, просмотром и контекстом в течение нескольких часов. Результата пока нет. Можно ли заставить Scala поверить мне, что у T есть метод .doubleValue ()? (java .big.Decimal и Long оба имеют метод .doubleValue (), но у них нет общего суперкласса)