如何将问题的结果转换为合适的类型?

时间:2014-08-09 11:32:37

标签: scala akka spray

我正在使用ask?)从Actor中获取类型为Set[String]的值。但是,演员返回Future[Any]

将此Future[Any]转换为Future[Set[String]]的正确方法是什么?

val result : Future[Any] = myactor ? GetSomeValue
//convert Future[Any] to Future[Set[String]]

1 个答案:

答案 0 :(得分:7)

Futures上有一个名为mapTo的方法:

val result : Future[Set[String]] = (myactor ? GetSomeValue).mapTo[Set[String]]

如果演员表没有成功,它会引发异常。来自docs

  

创建一个新的Future [S],如果符合S的擦除类型或者ClassCastException,则使用Future的结果完成。