У меня есть переменная какого-либо типа, и я хотел бы получить информацию от объекта-компаньона. Например, я думал, что я мог бы быть в состоянии сделать что-то вроде этого:Доступ к сопутствующему объекту типа
def foo[I: Integral](i:I): = {
val minVal = i match {
case _:Byte => Byte.MinValue
case _:Char => Char.MinValue
case _:Int => Int.MinValue
case _:Long => Long.MinValue
case _:Short => Short.MinValue
}
// compare i and minVal
}
Но это довольно многословным и minVal
выходит как :Long
, что затрудняет сравнение с i: I
.
Я надеялся, что смогу найти что-то краткое и прямое, но я подозреваю, что для этого требуется отражение, которого часто не бывает.