私はアクターのマップを試していて、それらをインスタンス化して一気に開始する方法を知りたいです...
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
2番目のインスタンスを取得して開始させますが、もっと次のようなことができるようにしたいと思います:
groupings.foreach(group => myActorMap += (group -> (new MyActor).start))
しかし、新しいアクタをどのようにラップしても、コンパイラは次のようなエラーを出します:
型の不一致; 見つかった: scala.actors.Actor 必須: com.myCompany.test.MyActor
またはその他のさまざまな苦情。匿名クラスを使用するのは簡単なことに違いないことはわかっていますが、今はわかりません。助言がありますか?前もって感謝します!!