这是我现在拥有的代码,我引用了一个名为 Processor 的 Akka Actor 的任何子类:
def newProcessorProps(processorClass: Class[_ <: Processor]): Props = {
Props(new processorClass).withDispatcher("dispatcher")
}
我只是不知道如何使用该参数实例化一个新类。我认为这里不需要反思,因为我已经上课了。谢谢你的帮助。
如果您将类对象作为值,则可以通过调用其上的newInstance()
方法来实例化。所以你会这样做:
def newProcessorProps(processorClass: Class[_ <: Processor]): Props = {
Props(processorClass.newInstance()).withDispatcher("dispatcher")
}
您还可以使用类型的 Manifest 来实例化该类型的对象
def newProcessorProps[T <: Processor](implicit m: Manifest[T]): Props = {
Props(m.erasure.newInstance().asInstanceOf[T]).withDispatcher("dispatcher")
}
然后像这样为特定的处理器调用它:
newProcessorProps[SpecificProcessor]
这只有在我认为 T 有一个无参数的构造函数时才有效。