使用actor在akka Producer-Consumer中找不到的值

时间:2014-08-09 11:11:22

标签: scala akka actor

我正在学习使用actor创建Producer Consumer的教程 我制作了三个文件,即Master.scala,Counter.scala和Parser.scala 我在我的两个文件中得到 not found value (Counter.scala和Parser.scala)  Parser.scala

 import akka.actor.Actor
    import akka.actor.ActorSystem
    import akka.actor.Props
    import akka.actor._
    case object Processed
    class Parser(counter: ActorRef) extends Actor {
    val pages=Pages(100000, "enwiki.xml")
    override def preStart{
    for(page<-pages.take(10))
    counter ! page
    }
    def receive={
    case Processed if pages.hasNext => counter ! pages.next
    case _ => context.stop(self)
    } 
    }

Counter.scala

 import akka.actor.Actor
    import akka.actor.ActorSystem
    import akka.actor.Props
    import akka.actor._
    class Counter extends Actor {
    val counts = HashMap[String,Int]().withDefaultValue(0)
    def receive={
    case Page(title, text)=>
    for (word<-Words(text))
    counts(word) += 1
    sender ! Processed
    }
    }

错误

[错误] /home/ahsen/SbtPrctc/ProducerConsumer/src/main/scala/Counter.scala:6:找不到:值HashMap

[error] val counts = HashMapString,Int.withDefaultValue(0)

[错误] ^

[错误] /home/ahsen/SbtPrctc/ProducerConsumer/src/main/scala/Counter.scala:8:not found:value Page

[错误]案例页面(标题,文字)=&gt;

[错误] ^

[错误] /home/ahsen/SbtPrctc/ProducerConsumer/src/main/scala/Counter.scala:9:not found:value Words

[error] for(word&lt; -Words(text))

[错误] ^

[错误] /home/ahsen/SbtPrctc/ProducerConsumer/src/main/scala/Parser.scala:7:not found:value Pages

[error] val pages = Pages(100000,&#34; enwiki.xml&#34;)

[错误] ^

我确信我正在做一些愚蠢的错误请帮帮我

1 个答案:

答案 0 :(得分:1)

如果您想使用Java HashMap,则需要import java.util.HashMap。但是,我相信您希望使用Scala scala.collections.mutable.Map(您还需要导入,并将HashMap更改为Map)。

另外,请在问题中正确缩进代码,并将堆栈跟踪标记为代码。这使得受访者更容易阅读您的问题。