当你希望发送消息到某个Actor,但是却又不想建立新的Actor的时候,就可以创建Inbox和Actor进行通信。
import akka.actor.UntypedActor;
public class Actor1 extends UntypedActor {
@Override
public void onReceive(Object message) throws Exception {
// TODO Auto-generated method stub
if (message instanceof MSG){
if (message.equals(MSG.HI)){
System.out.println("i receive hi");
getSelf().tell("world", getSender());
}
else{
unhandled(message);
}
}
else{
unhandled(message);
}
}
}
public enum MSG {
HI, OK
}
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Inbox;
import akka.actor.Props;
public class InboxTest {
public static void main(String[] args) {
// 创建ActorSystem用于创建Inbox和Actor
final ActorSystem system = ActorSystem.create("MySystem");
// inbox初始化
Inbox inbox = Inbox.create(system);
// 创建actor1
final ActorRef actor1 = system.actorOf(Props.create(Actor1.class),
"Actor1");
// 发送消息到actor1,
inbox.send(actor1, MSG.HI);
// Over
system.shutdown();
}
}