我正在尝试编写一个方法,将任何值转换为特定类型并返回选项,而不是像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
出现 Error 错误
java.lang.Exception: 'Some(2)' is not None
有人知道为什么吗?