Scala Akka-使用反射创建演员

Scala Akka-使用反射创建演员,scala,reflection,constructor,akka,actor,Scala,Reflection,Constructor,Akka,Actor,我需要创建一个actor,它的确切类型只能在运行时从配置文件中读取。该参与者的构造函数非常重要,即它需要一些在配置文件中定义的参数 到目前为止,我一直尝试使用反射来实现这一点,如下所示: val actor = actorOf(constructor.newInstance(parameters: _*).asInstanceOf[T]).start 不幸的是,这会导致“akka.actor.ActorInitializationException:actor[…]实例的ActorRef不在范

我需要创建一个actor,它的确切类型只能在运行时从配置文件中读取。该参与者的构造函数非常重要,即它需要一些在配置文件中定义的参数

到目前为止,我一直尝试使用反射来实现这一点,如下所示:

val actor = actorOf(constructor.newInstance(parameters: _*).asInstanceOf[T]).start
不幸的是,这会导致“akka.actor.ActorInitializationException:actor[…]实例的ActorRef不在范围内。无法使用“new MyActor.”[…]显式创建actor实例


现在,我知道这可以保护框架不泄露对内部对象的引用,但是我如何克服这个问题呢?或者,我如何才能以一种可行的方式完成我正在尝试做的事情呢?

也许可以使用Java接口创建带有参数的参与者。用于创建的(Java)代码如下所示:

ActorRef actor = actorOf(new UntypedActorFactory() {
  public UntypedActor create() {
    return new MyUntypedActor("service:name", 5);
   }
});
因此,传递的是工厂而不是函数。这可能会更好