Donc, si j'ai un acteur, je peux lui donner un nom. Mais, puis-je accéder à ce nom en interne? Exemple:
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"
Maintenant, je peux passer son nom en tant que paramètre constructeur. Mais cela semble être une duplication inutile s'il existe un moyen d'obtenir le nom en interne ... comme il a été défini lorsque j'ai instancié l'acteur en utilisant system.actorOf
. Les documents API ne semblaient rien avoir.
À partir d'un Actor
, vous pouvez utiliser self
pour obtenir le ActorRef
.
val actorName = self.path.name
http://doc.akka.io/api/akka/2.2.3/#akka.actor.Actor