Java 使用非默认构造函数创建akka子参与者

Java 使用非默认构造函数创建akka子参与者,java,akka,Java,Akka,有人能帮我回答这个问题吗。 将akka与Java结合使用时,是否可以使用带参数的构造函数创建akkachildactor。因为我知道主演员负责制作儿童演员。因此,如果我们有一个子参与者,它在构造函数中接受参数 这是否意味着无论何时调用子参与者,主参与者都必须创建子参与者的新实例,以便将参数传递给子参与者。不一定。一旦参与者被创建,用户将能够直接向该参与者发送消息。如果您有一个系统,其中必须创建一个新的参与者来完成每条消息的工作,那么最好让主管为您创建参与者,然后让参与者通过tell()机制发回数

有人能帮我回答这个问题吗。 将akka与Java结合使用时,是否可以使用带参数的构造函数创建
akka
childactor。因为我知道主演员负责制作儿童演员。因此,如果我们有一个子参与者,它在构造函数中接受参数


这是否意味着无论何时调用子参与者,主参与者都必须创建子参与者的新实例,以便将参数传递给子参与者。

不一定。一旦参与者被创建,用户将能够直接向该参与者发送消息。如果您有一个系统,其中必须创建一个新的参与者来完成每条消息的工作,那么最好让主管为您创建参与者,然后让参与者通过tell()机制发回数据

不一定。一旦参与者被创建,用户将能够直接向该参与者发送消息。如果您有一个系统,其中必须创建一个新的参与者来完成每条消息的工作,那么最好让主管为您创建参与者,然后让参与者通过tell()机制发回数据

另一种方法是使用非类型DactorFactory(至少在akka 2.1.2中):


在“使用非默认构造函数创建参与者”下,另一种方法是使用非类型DactorFactory(至少在akka 2.1.2中):


正如Robert所说,在“使用非默认构造函数创建参与者”下,一旦创建了参与者,您只需向其发送消息即可。这就是如何使用参数创建参与者,您可以从另一个参与者执行此操作:

自Akka 2.2以来,非型号的DactorFactory已被去除润滑脂

相反,我认为最简单的方法是这样做:

ActorRef myActor = system.actorOf(Props.create(MyActor.class, params), "MyActor");
static class MyActorC implements Creator<MyActor> {
  @Override public MyActor create() {
    return new MyActor("...");
  }
}
或者,您可以像这样实现Creator:

ActorRef myActor = system.actorOf(Props.create(MyActor.class, params), "MyActor");
static class MyActorC implements Creator<MyActor> {
  @Override public MyActor create() {
    return new MyActor("...");
  }
}
静态类MyActorC实现了Creator{
@重写公共MyActor create(){
返回新的MyActor(“…”);
}
}
有关更多信息,请参见此处:


正如罗伯特所说,一旦一个演员被创造出来,你只需要向他发送信息。这就是如何使用参数创建参与者,您可以从另一个参与者执行此操作:

自Akka 2.2以来,非型号的DactorFactory已被去除润滑脂

相反,我认为最简单的方法是这样做:

ActorRef myActor = system.actorOf(Props.create(MyActor.class, params), "MyActor");
static class MyActorC implements Creator<MyActor> {
  @Override public MyActor create() {
    return new MyActor("...");
  }
}
或者,您可以像这样实现Creator:

ActorRef myActor = system.actorOf(Props.create(MyActor.class, params), "MyActor");
static class MyActorC implements Creator<MyActor> {
  @Override public MyActor create() {
    return new MyActor("...");
  }
}
静态类MyActorC实现了Creator{
@重写公共MyActor create(){
返回新的MyActor(“…”);
}
}
有关更多信息,请参见此处:

文档是你的朋友:文档是你的朋友: