class MyActor extends Actor with ActorLogging with Stash
Actor
, ActorLogging
et Stash
ici sont des traits. En Scala, une classe peut étendre un trait et mélanger des traits supplémentaires.
AbstractActor
AbstractLoggingActor
AbstractActorWithStash
Les classes ci-dessus dans l'API Java d'Akka sont des classes abstraites. En Java, une classe ne peut pas étendre plus d'une classe abstraite. Par conséquent, on ne peut pas définir en Java l'équivalent syntaxique de la classe MyActor
.
Cependant, on peut facilement définir l'équivalent effectif de MyActor
en Java. AbstractLoggingActor
est un moyen pratique d'obtenir un LoggingAdapter
chez un acteur; l'alternative à l'utilisation AbstractLoggingActor
est simplement de créer manuellement un LoggingAdapter
. Ce qui suit définit un acteur qui a à la fois la journalisation et le stockage avec l'API Java:
import akka.actor.*;
import akka.event.Logging;
import akka.event.LoggingAdapter;
class MyActorInJava extends AbstractActorWithStash {
LoggingAdapter log = Logging.getLogger(getContext().getSystem(), this);
...
}