原始码
public void calculate (final int nrOfWorkers, final int nrOfElements, final int nrOfMessages){
ActorSystem system = ActorSystem.create("PiSystem");
final ActorRef listener = system.actorOf(Props.create(Listener.class), "listener");
ActorRef master = system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new Master(nrOfWorkers, nrOfMessages, nrOfElements, listener);
}
}), "master");
master.tell(new Calculate(), ActorRef.noSender());
}
其中,不推荐使用UntypedActorFactory.
我的Mod
所以我试图使用Props.create如
ActorRef master = system.actorOf( Props.create(
new Creator(){
public Master create(){
return new Master(nrOfWorkers, nrOfMessages, nrOfElements, listener);
}
}), "master");
还有异常说
cannot use non-static local Creator to create actors; make it static
or top-level
所以我开始写一个静态类,它有参数需要传递.
static class LocalCreator implements Creator{
public Master create(){
return new Master(nrOfWorkers, nrOfMessages, nrOfElements, listener);
}
}
题
如何将参数nrOfWorkers等传递给create()函数?