私はscalaとakkaには新しく、私はintellijにあるこのサンプルプログラムを試したかったのです。残念ながら、それは動作しません。なぜそれが動作しないのか分かりませんが、私もintellijには新しく、ロードされたライブラリの問題かもしれません。とにかくここにコードがあります。スカウトのクラスを解決できません。例のプログラム
package test
import akka.actor.{Actor, ActorLogging}
class Printer extends Actor with ActorLogging{
import Printer._
def receive={
case Greeting(greeting)=>
log.info(s"Greeting received (from ${sender()}): $greeting")
}
}
今すぐGreeterクラスが来る:
package test
import akka.actor.{Actor, ActorLogging, ActorRef, Props}
class Greeter(message: String, printerActor: ActorRef) extends Actor with
ActorLogging {
import Greeter._
import Printer._
var greeting = ""
def receive = {
case WhoToGreet(who) =>
greeting = s"$message, $who"
case Greet =>
printerActor ! Greeting(greeting)
}
}
そして今、メイン:
package test
import akka.actor.{ActorRef, ActorSystem}
import scala.io.StdIn
object main extends App {
import Greeter._
// Create the 'helloAkka' actor system
val system: ActorSystem = ActorSystem("helloAkka")
try {
// Create the printer actor
val printer: ActorRef = system.actorOf(Printer.props, "printerActor")
// Create the 'greeter' actors
val howdyGreeter: ActorRef =
system.actorOf(Greeter.props("Howdy", printer), "howdyGreeter")
// Send messages
howdyGreeter ! WhoToGreet("Akka")
howdyGreeter ! Greet
println(">>> Press ENTER to exit <<<")
StdIn.readLine()
} finally {
system.terminate()
}
}
私はいくつかの "解決することはできません" というエラーを得たこれは、プリンタのクラスです。まず、なぜPrinterとGreeter(import Greeter._/Printer._)にインポートステートメントが必要なのですか?解決できないものとしてマークされています。また、すべてのプリンタまたはGreeterには解決できないものとしてマークされています。
C:\Users\olive\IdeaProjects\akkat\src\test\scala\test\Greeter.scala
Error:(4, 10) not found: value Greeter
import Greeter._
Error:(5, 10) not found: value Printer
import Printer._
Error:(8, 10) not found: value WhoToGreet
case WhoToGreet(who) =>
Error:(10, 10) not found: value Greet
case Greet =>
Error:(11, 22) not found: value Greeting
printerActor ! Greeting(greeting)
C:\Users\olive\IdeaProjects\akkat\src\test\scala\test\Printer.scala
Error:(6, 10) not found: value Printer
import Printer._
Error:(9, 10) not found: value Greeting
case Greeting(greeting)=>
C:\Users\olive\IdeaProjects\akkat\src\test\scala\test\main.scala
Error:(5, 10) not found: value Greeter
import Greeter._
Error:(10, 44) not found: value Printer
val printer: ActorRef = system.actorOf(Printer.props, "printerActor")
Error:(13, 20) not found: value Greeter
system.actorOf(Greeter.props("Howdy", printer), "howdyGreeter")
Error:(15, 20) not found: value WhoToGreet
howdyGreeter ! WhoToGreet("Akka")
Error:(16, 20) not found: value Greet
howdyGreeter ! Greet
これらは、私はあなたがScalaのクラスに関連するコンパニオンオブジェクトを作成する必要がlibaries
WhoToGreetとGreetのケースクラスはどこですか? –