Kev*_*cht 75 scala type-conversion
可以说我有以下代码:
abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!
Run Code Online (Sandbox Code Playgroud)
如何修复此代码的最后一行?基本上,我只想做一些类似C语言的事情:
var bar:Dog = (Dog) foo
Run Code Online (Sandbox Code Playgroud)
Kev*_*cht 139
我自己想出来了.有两种解决方案:
1)做明确的演员:
var bar:Dog = foo.asInstanceOf[Dog]
Run Code Online (Sandbox Code Playgroud)
2)使用模式匹配为您投射,这也会捕获错误:
var bar:Dog = foo match {
case x:Dog => x
case _ => {
// Error handling code here
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65310 次 |
最近记录: |