2012-12-03 37 views
0

我有一个包含这个Int列表的未来:List(40, 42, 41)。我试图使用过滤功能来过滤它,正如我通常使用的那样:f.filter(_ == 42)。 f是包含列表的未来。我从另一个演员那里得到了它。执行时,我得到这个MatchError:如何过滤akka中的结果?

[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 } }) 
+0

谢谢你这个作品。经过一番尝试,我发现,我需要明确的类型。 –