我有一个包含此Int列表的Future:List(40, 42, 41)
。我尝试使用filter-function过滤它,因为我正常使用:f.filter(_ == 42)
。
f是包含List的未来。我是从另一位演员那里得到的。执行时我得到这个MatchError:
[ERROR] [12/03/2012 09:37:34.252] [playground-akka.actor.default-dispatcher-1] [akka://playground/user/sender] List(40, 42, 41) (of class scala.collection.immutable.$colon$colon)
scala.MatchError: List(40, 42, 41) (of class scala.collection.immutable.$colon$colon)
我不明白这个错误,我无法修复它。有人可以帮帮我吗?
修改
这是一个代码:
case class Send(target: ActorRef, msg: String)
class SendingActor extends Actor with ActorLogging {
implicit val timeout = Timeout(1 second)
def receive = {
case Send(target, msg) =>
log.info("will send %s".format(msg))
val f = target ? msg
log.info("awaited " + Await.result(f.filter(_ == 42), timeout.duration).asInstanceOf[List[Int]])
}
}
答案 0 :(得分:2)
您正尝试通过在整数列表的未来调用过滤器来过滤整数列表。您需要先解压缩列表。
Await.result(f map { list => list filter { _ == 42 } })