在Scala中的显式types转换
比方说,我有以下代码:
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
我自己想到了这一点。 有两个解决scheme:
1)做明确的演员:
var bar:Dog = foo.asInstanceOf[Dog]
2)使用模式匹配为您施放,这也会产生错误:
var bar:Dog = foo match { case x:Dog => x case _ => { // Error handling code here } }