1

这是我现在拥有的代码,我引用了一个名为 Processor 的 Akka Actor 的任何子类:

def newProcessorProps(processorClass: Class[_ <: Processor]): Props = {
  Props(new processorClass).withDispatcher("dispatcher")
}

我只是不知道如何使用该参数实例化一个新类。我认为这里不需要反思,因为我已经上课了。谢谢你的帮助。

4

2 回答 2

3

如果您将类对象作为值,则可以通过调用其上的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 有一个无参数的构造函数时才有效。

于 2012-10-30T23:37:07.860 回答
0

根据文档,从技术上讲,它是 Props(processorClass) 或 Props[ProcessorClassType]

于 2012-10-31T00:46:46.167 回答