这是我现在的代码,我正在引用一个名为Processor的Akka Actor的子类:
def newProcessorProps(processorClass: Class[_ <: Processor]): Props = {
Props(new processorClass).withDispatcher("dispatcher")
}
我无法弄清楚如何使用该参数实例化一个新类。我不认为这里不需要反思,因为我已经上课了。谢谢你的帮助。
答案 0 :(得分:3)
如果您将类对象作为值,则可以通过调用其上的newInstance()
方法进行实例化。所以你要这样做:
def newProcessorProps(processorClass: Class[_ <: Processor]): Props = {
Props(processorClass.newInstance()).withDispatcher("dispatcher")
}
您还可以使用类型的清单来实例化该类型的对象
def newProcessorProps[T <: Processor](implicit m: Manifest[T]): Props = {
Props(m.erasure.newInstance().asInstanceOf[T]).withDispatcher("dispatcher")
}
然后将其称为特定处理器,如下所示:
newProcessorProps[SpecificProcessor]
只有T我有一个无参数构造函数,这才有效。
答案 1 :(得分:0)
从技术上讲,它是Props(processorClass)或Props [ProcessorClassType],符合documentation