Estoy tratando de lograr escribir un método que arroje un valor de Cualquiera a un tipo específico y devuelve la opción en lugar de arrojar una excepción como instanceOf. Scala no se comporta como si hubiera esperado:Escribiendo una función de conversión genérica Scala
def cast[A](value: Any): Option[A] =
{
try
{
Some(value.asInstanceOf[A])
} catch
{
case e: Exception => None
}
}
La prueba:
val stringOption: Option[String] = cast[String](2)
stringOption must beNone
produce el error
java.lang.Exception: 'Some(2)' is not None
Alguien tiene una idea de por qué?
Lanzar un valor entero a una cadena debe conducir a una excepción y el método debe devolver None, pero no es el caso. Yo uso scala 2.9.0-1 –
Sí, devuelve Some (2) pero ... not. Tratar de 'obtener' el valor arroja la excepción, pero 'getOrElse' está bien. –
Sí exactamente, esperaba que ocurriera una excepción en el método de conversión. –