从Scala中的向下转换变量导入?

时间:2011-11-10 11:25:53

标签: scala casting import

我正在编写ScalaTest JMock期望。语法通常是

expecting { e => import e._
  // call methods on e
}

现在我碰巧知道e是Expectation的子类。我可以写

expecting { e => 
  val e2 = e.asInstanceOf[MySubclass]
  import e2._
  // call MySubclass methods
}

但我无法找到任何方式制作像

这样的单行
expecting { e => import (e.asInstanceOf[MySubclass])._
  // call MySubclass methods
}

编译。

无论如何只需一步完成向下转换和导入操作吗?

1 个答案:

答案 0 :(得分:5)

我没有看到将两者结合起来的方法,但我宁愿像这样实现它:

expecting { case e: MySubclass => import e._
  ...
}