我如何使用阿卡演员问及保持类型安全? 或者避免使用要求赞成讲述了?
当调用?
或ask
上阿卡演员,一个Future[Any]
返回,我所要做的通过显式类型转换future.mapTo[MyType]
。
我不喜欢失去这种类型的安全性。 如果我使用期货直接(不带演员),我可以明确地返回Future[MyType]
和维护类型安全。
我的具体使用情况涉及一个演员委派它的消息,两个小演员,然后从这些演员聚集的结果,并返回该给父母的发件人。 我父母的接收方法类似于在阿卡文档这种方式:
http://doc.akka.io/docs/akka/2.0/scala/futures.html#For_Comprehensions
val f1 = actor1 ? msg
val f2 = actor2 ? msg
val f3 = for {
a ← f1.mapTo[Int]
b ← f2.mapTo[Int]
c ← ask(actor3, (a + b)).mapTo[Int]
} yield c
有没有更好的方式来实现我的使用情况?