【发布时间】:2012-02-16 13:04:52
【问题描述】:
最近我从 scala actor 切换到 akka actor,但注意到 akka actor 使用 ActorRef 而不是实例对象:
val actorRef: ActorRef = Actor.actorOf(new MyActor)
所以我尝试了:
val myActor = new MyActor
val actorRef: ActorRef = Actor.actorOf(x)
... 同时拥有:1) ActorRef 发送消息和 2) MyActor 调用方法。
但我得到了:
akka.actor.ActorInitializationException: ActorRef for instance of actor [MyActor] is not in scope.
所以我的问题是:如何获得一个实例(某种类型),我可以在该实例上调用 ActorRef 类似的方法,如 ! 以及来自 MyActor 实例的方法?
【问题讨论】:
-
你为什么要调用actor的方法?什么样的方法?我认为直接在actor上调用方法是危险的,你应该考虑改变它的工作方式。
-
@Submonoid 我知道那很危险。这是一种方便的方法,正如您在我的示例中看到的那样,它不会改变参与者的内部状态(危险部分),而只会发送一条消息。