Я пытаюсь написать метод, который приводит значение Any к определенному типу и возвращает параметр вместо генерации исключения, такого как instanceOf. Scala ведет себя не так, как я ожидал:
def cast[A](value: Any): Option[A] =
{
try
{
Some(value.asInstanceOf[A])
} catch
{
case e: Exception => None
}
}
Тест:
val stringOption: Option[String] = cast[String](2)
stringOption must beNone
не выполняется с ошибкой
java.lang.Exception: 'Some(2)' is not None
Кто-то знает, почему?