Явное преобразование типов в 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
680   1  

1 ответ:

Я понял это сам. Есть два решения:

1) Сделайте явное приведение:

var bar:Dog = foo.asInstanceOf[Dog]

2) Использовать подстановочные знаки, чтобы бросить его для вас, это также ловит ошибки:

var bar:Dog = foo match {
  case x:Dog => x
  case _ => {
    // Error handling code here
  }
}

Comments

    Ничего не найдено.