我想做的是(目前无法编译):
def createSystem(system:ActorSystem, actorMap: Map[String, type]) = {
for( (name, actor) <- actorMap){
system.actorOf(Props[type], name) //<- should be called like Props[MyActor1]
}
}
然后将其称为:
def standardSystem(system:ActorSystem):Unit = {
createSystem(
system,
Map(
"actor1" -> classOf[MyActor1],
"actor2" -> classOf[MyActor2]
))
}
问题是Props [T]期望传入类型,但我不知道如何在地图中传递类型,以及如何在Props调用中引用此类型。
答案 0 :(得分:1)
定义地图 Map[String , Class[_ <: Actor]]
如上所述,使用Props.create(actor)并迭代它
for ( (name,clazz) <- actorMap ) {
system.actorOf(Props.create(clazz) , name )
}
答案 1 :(得分:0)
Akka&#39; Props
提供了一个create
方法,可以上课。只需和你的班级一起打电话:
system.actorOf(Props.create(actor), name)