我需要创建一个演员,其确切类型仅在运行时从配置文件中读取。该演员的构造函数不是简单的,即它需要一些在配置文件中定义的参数。
到目前为止,我尝试使用反射来实现:
val actor = actorOf(constructor.newInstance(parameters: _*).asInstanceOf[T]).start
不幸的是,这导致了一个 "akka.actor.ActorInitializationException: ActorRef for instance of actor [...] is not in scope. You can not create an instance of an actor explicitly using 'new MyActor'. [...]" 的错误!
现在,我理解这可以保护框架不泄露内部对象的引用,但我该如何解决这个问题?或者说,有什么其他方法可以让我以可行的方式完成我想做的事情?