当前位置: 首页 > 知识库问答 >
问题:

如何在Scala中为带有构造函数参数的Actor创建TestActorRef?

西门威
2023-03-14
import akka.testkit.TestActorRef

val actorRef = TestActorRef[MyActor]

我想出的在方括号内的类名后面添加args的各种想法也都崩溃了。

共有1个答案

龚彬
2023-03-14

您可以使用道具,如下所示:

val actorRef = TestActorRef(Props(new MyActor(param1, param2)))

或者像这样的工厂方法:

val actorRef = TestActorRef(new MyActor(param1, param2))

请参见applyobjectTestactorRef中的方法。

 类似资料:
  • 在Scala中,我想创建一个抽象类,它接受一些“策略”参数(这里是)和一个值参数(这里为)。我想从该类继承,将策略参数作为继承的一部分提供,并获得一个类(这里是),该类接受该值作为构造函数参数。 下面是我希望能够运行的代码: 不幸的是,我收到以下错误: 错误:构造函数Cls1的参数太多:()A$A58.this.Cls1惰性val obl=new Cls1(5)错误:缺少构造函数Base的参数列表

  • 我想有一个java中的构造函数参数化一个类来运行这个类,类似于这个 其中classToRun可能的类没有共同的祖先,但都有方法someStaticMethod。 但也存在一些问题,比如内部类不能有静态方法,类不能被转换为类,等等。 有一些用类方法参数化的解决方案,如 如何在Java中传递类作为参数? 在java中将类作为参数传递给方法 但对建造者来说不是。 这样做的正确解决方案是什么?

  • 在C#、C和Java中,当你创建一个带参数的构造函数时,默认的无参数构造函数就消失了。我一直只是接受这个事实,但现在我开始想为什么。 这种行为的原因是什么?这仅仅是一个“安全度量/猜测”,说“如果你已经创建了自己的构造函数,你可能不希望这个隐含的函数四处游荡”?或者它有一个技术原因,使得编译器不可能在你自己创建构造函数后添加一个?

  • 问题内容: 为什么供应商仅支持无参数构造函数? 如果存在默认构造函数,则可以执行以下操作: 但是,如果唯一的构造函数采用字符串,则必须这样做: 问题答案: 这只是方法引用语法的局限性,您不能传入任何参数。语法就是这样工作的。