我正在学习使用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;)
[错误] ^
我确信我正在做一些愚蠢的错误请帮帮我
答案 0 :(得分:1)
如果您想使用Java HashMap
,则需要import java.util.HashMap
。但是,我相信您希望使用Scala scala.collections.mutable.Map
(您还需要导入,并将HashMap
更改为Map
)。
另外,请在问题中正确缩进代码,并将堆栈跟踪标记为代码。这使得受访者更容易阅读您的问题。