【发布时间】:2016-03-07 19:54:05
【问题描述】:
我有这样的事情:
class ProbeActor extends Actor {
case class Probe(messageKey: String)
def receiveProbe: Receive = {
case Probe(probeKey) => println("Good probe: "+probeKey)
case x => println("Bad probe: "+ x)
}
final override def receive = receiveProbe orElse receiveOther
def receiveOther: Receive = {
case _ => println("Other")
}
}
我这样称呼它:
class Prober extends ProbeActor {
val definite = ActorSystem("ProbeTest").actorOf(Props[ProbeActor], name = "probed")
implicit val timeout = Timeout(5 second)
val future = definite ? Probe("key")
}
我希望应该打印文本 "Good probe: key",但我得到了 "Bad probe: Probe(key)"。
注意:如果我将Probe case 类放在外面,那么它工作正常。
【问题讨论】:
标签: scala pattern-matching akka case-class