【发布时间】:2014-12-23 14:01:28
【问题描述】:
在下面的代码中,是否可以在不使用 asInstanceOf 的情况下重新编写?我发现了一些应该避免使用 asInstanceOf/isInstanceOf 的样式指南建议,并且我设法清理了我的代码,除了下面显示的用法。
我确实找到了一个重复的问题 here,但对于这个特殊情况并没有真正帮助我,或者我只是一个初学者,无法将其转换为我自己的用例。
trait pet {}
class dog extends pet {
def bark: String = {
"WOOF"
}
}
def test(what: pet) : String =
{
what match {
case _:dog =>
val x = what.asInstanceOf[dog]
x.bark
}
}
test(new dog())
我试过例如:
val x = what : dog
但这似乎不起作用。
【问题讨论】:
标签: scala