我正在使用ask
(?
)从Actor中获取类型为Set[String]
的值。但是,演员返回Future[Any]
。
将此Future[Any]
转换为Future[Set[String]]
的正确方法是什么?
val result : Future[Any] = myactor ? GetSomeValue
//convert Future[Any] to Future[Set[String]]
答案 0 :(得分:7)
Futures上有一个名为mapTo
的方法:
val result : Future[Set[String]] = (myactor ? GetSomeValue).mapTo[Set[String]]
如果演员表没有成功,它会引发异常。来自docs:
创建一个新的Future [S],如果符合S的擦除类型或者ClassCastException,则使用Future的结果完成。