Пожалуйста, укажите мне правильную ссылку, если на этот вопрос уже был дан ответ.
У меня есть этот код:
def getResult(a:Any):Any = a
def getAnswer[T](i:Int) = {
val result = getResult(i)
result match {
case t:T => Some(t)
case _ => None
}
}
Это дает мне unchecked warning
, и все соответствует T
,Например, когда я делаю getAnswer[Int](2)
, я получаю Some(2)
(как и ожидалось).Однако, если я сделаю getAnswer[String](2)
, я также получу Some(2)
, что не ожидается (мне нужно None
).
Есть ли способ обойти удаление типа и каким-то образом заставить getAnswer
работать правильно (т. Е. Вернуть Some(result)
тогда и только тогда, когда результат имеет тип T
)?
Заранее спасибо.