Явное преобразование типов в Scala
допустим у меня есть следующий код:
abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!
Как исправить последнюю строку этого кода? В принципе, я просто хочу сделать то, что на языке C-like будет сделано:
var bar:Dog = (Dog) foo
1 ответ:
Я понял это сам. Есть два решения:
1) Сделайте явное приведение:
var bar:Dog = foo.asInstanceOf[Dog]2) Использовать подстановочные знаки, чтобы бросить его для вас, это также ловит ошибки:
var bar:Dog = foo match { case x:Dog => x case _ => { // Error handling code here } }
Comments