69

所以,如果我有一个演员,我可以给它一个名字。但是,我可以在内部访问该名称吗?例子:

class Actorz extends Actor with ActorLogging {
   val actorName = //??What function

   def receive = {
     case x => log.debug(actorName+": Received Message: "+x)
   }
}

val actor = system.actorOf(Props[Actorz], "named")
actor ! "dogs"

现在,我可以将其名称作为构造函数参数传递。但是,如果有办法在内部获取名称,这似乎是不必要的重复......因为它是在我使用system.actorOf. API 文档似乎没有任何内容。

4

1 回答 1

101

Actor您可以使用self获取ActorRef.

val actorName = self.path.name

http://doc.akka.io/api/akka/2.2.3/#akka.actor.Actor

http://doc.akka.io/api/akka/2.2.3/#akka.actor.ActorRef

http://doc.akka.io/api/akka/2.2.3/#akka.actor.ActorPath

于 2013-11-10T08:44:43.043 回答