我正在试验一张演员地图,并想知道如何实例化它们并一举启动它们......
import scala.actors.Actor
import scala.actors.Actor._
import scala.collection.mutable._
abstract class Message
case class Update extends Message
object Test {
val groupings = "group1" :: "group2" :: "group3":: Nil
val myActorMap = new HashMap[String,MyActor]
def main(args : Array[String]) {
groupings.foreach(group => myActorMap += (group -> new MyActor))
myActorMap("group2").start
myActorMap("group2") ! Update
}
}
class MyActor extends Actor {
def act() {
loop {
react {
case Update =>
println("Received Update")
case _ =>
println("Ignoring event")
}
}
}
}
该行:
myActorMap("group2").start
将抓住第二个实例,让我开始它,但我希望能够做更多类似的事情:
groupings.foreach(group => myActorMap += (group -> (new MyActor).start))
但无论我如何包装新的 Actor,编译器都会抱怨以下内容:
类型不匹配; 找到:scala.actors.Actor 需要:com.myCompany.test.MyActor
或其他各种投诉。我知道使用匿名类一定很简单,但我现在看不到。有什么建议么?提前致谢!!