Если я определяю следующую функцию, которая ожидает Long, и я определяю следующую неявную функцию, неявная функция используется, когда я передаю Date первой функции, и все работает как ожидалось:
def millisToDays(in: Long): Int = (in / (1000L * 3600L * 24L)).toInt
implicit def dateToLong(d: Date) = d.getTime
println(millisToDays(new Date))
Но для следующего второго примера я получаю ошибку компилятора в третьей строке: «Аргументы выводимого типа [Int] не соответствуют границам параметра типа метода mySum [t <: java.lang.Number]» </p>
def mySum[T <: Number](as: T*): Double = as.foldLeft(0d)(_ + _.doubleValue)
implicit def intToInteger(n: Int): Integer = new Integer(n.toInt)
var r = mySum(2, 3)
Что я сделал не так? Почему не используется неявная функция intToInteger?
Я предполагаю, что проблема в том, что неявная функция не возвращает "T <: Number", а скорее целое число, поэтому компилятор не может догадаться, что неявная функция действительно полезна. </p>
В любом случае, могу ли я дать компилятору подсказку, что он должен использовать неявную функцию?
Спасибо!
Ant