public <T> T actorFor(final Class<T> protocol, final Definition definition, final Address address) {
    final Address actorAddress = this.allocateAddress(definition, address);
    final Mailbox actorMailbox = this.allocateMailbox(definition, actorAddress, null);
    final ActorProtocolActor<T> actor =
            actorProtocolFor(
              protocol,
              definition,
              definition.parentOr(world.defaultParent()),
              actorAddress,
              actorMailbox,
              definition.supervisor(),
              definition.loggerOr(world.defaultLogger()));

    return actor.protocolActor();
  }
public < T > T actorFor ( final Class < T > protocol , final Definition definition , final Address address ) { final Address actorAddress = this . allocateAddress ( definition , address ) ; final Mailbox actorMailbox = this . allocateMailbox ( definition , actorAddress , null ) ; final ActorProtocolActor < T > actor = actorProtocolFor ( protocol , definition , definition . parentOr ( world . defaultParent ( ) ) , actorAddress , actorMailbox , definition . supervisor ( ) , definition . loggerOr ( world . defaultLogger ( ) ) ) ; return actor . protocolActor ( ) ; }
Answers the {@code T} protocol of the newly created {@code Actor} that implements the {@code protocol} and
that will be assigned the specific {@code address}.
@param <T> the protocol type
@param protocol the {@code Class<T>} protocol
@param definition the {@code Definition} used to initialize the newly created {@code Actor}
@param address the {@code Address} to assign to the newly created {@code Actor}
@return T