我有一个Actor
看起来像这样的 Akka(在 Scala 中):
object MyActor {
def apply (system: ActorSystem, parm1: Int, parm2: Int, parm3: ActorRef): ActorRef = {
system.actorOf (Props (classOf[MyActor], parm1, parm2, parm3), "myactor")
}
}
class MyActor (parm1: Int, parm2: Int, parm3: ActorRef) extends Actor {
def receive = {
[...bunch of cases, ending with _...]
}
}
实际上,我有几个Actor
遵循这种模式的 s。但是这个,当我创建一个这样的实例时:
val myActorRef = MyActor (system, 3, 4, helperRef)
拒绝查看我发送的任何消息。中的断点MyActor.receive ()
永远不会被击中。
我在调试器中摸索了一下,发现了一个名为myActorRef._cellDoNotCallMeDirectly._actor
. 对于我的所有其他参与者,该字段包含相关Actor
子类的实例,这意味着在这种情况下它应该包含MyActor
.
但是,在这种情况下,该字段是null
。
我怀疑这与.receive ()
没有看到任何消息的事实有关。我很惊讶没有NullPointerException
飞来飞去,但没有。
null
此字段中的值是否有特别的含义?我是不是搞砸了?
谢谢,丹·维比