所以,如果我有一个演员,我可以给它一个名字。但是,我可以在内部访问该名称吗?例如:
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
实例化actor时设置的。 API文档似乎没有任何内容。
答案 0 :(得分:85)
从Actor
,您可以使用self
获取ActorRef
。
val actorName = self.path.name
http://doc.akka.io/api/akka/2.2.3/#akka.actor.Actor