developer tip

Scala의 명시 적 유형 변환

optionbox 2020. 10. 19. 07:57
반응형

Scala의 명시 적 유형 변환


다음 코드가 있다고 가정 해 보겠습니다.

abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!

이 코드의 마지막 줄을 어떻게 수정합니까? 기본적으로 C와 유사한 언어로 수행되는 작업을 수행하고 싶습니다.

var bar:Dog = (Dog) foo

나는 이것을 스스로 알아 냈다. 두 가지 솔루션이 있습니다.

1) 명시 적 캐스트 수행 :

var bar:Dog = foo.asInstanceOf[Dog]

2) 패턴 매칭을 사용하여 캐스팅하면 오류도 포착됩니다.

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

참고 URL : https://stackoverflow.com/questions/171489/explicit-type-conversion-in-scala

반응형