2012-12-03 79 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

謝謝你這個作品。經過一番嘗試,我發現,我需要明確的類型。 –