Я пытаюсь запустить пример пинг-понга из документации Акки здесь .Когда я запускаю его в ScalaFiddle через сайт Акки, все работает как положено.Когда я копирую / вставляю и запускаю его на листе IntelliJ scala, я получаю java.lang.IllegalArgumentException: no matching constructor found on class A$A14$A$A14$Pinger for arguments []
.Что здесь не так?Код, приведенный ниже.
Моя рабочая таблица не "работает в процессе компиляции" согласно этой ошибке .В противном случае я пытался работать в «режиме совместимости с затмениями», а также в «режиме REPL» и «интерактивном режиме».Наконец, настройка «Сделать проект перед запуском» не действует.
import akka.actor.{ ActorSystem, Actor, ActorRef, Props, PoisonPill }
import language.postfixOps
import scala.concurrent.duration._
case object Ping
case object Pong
class Pinger extends Actor {
var countDown = 100
def receive = {
case Pong =>
println(s"${self.path} received pong, count down $countDown")
if (countDown > 0) {
countDown -= 1
sender() ! Ping
} else {
sender() ! PoisonPill
self ! PoisonPill
}
}
}
class Ponger(pinger: ActorRef) extends Actor {
def receive = {
case Ping =>
println(s"${self.path} received ping")
pinger ! Pong
}
}
val system = ActorSystem("pingpong")
val pinger = system.actorOf(Props[Pinger], "pinger")
val ponger = system.actorOf(Props(classOf[Ponger], pinger), "ponger")
import system.dispatcher
system.scheduler.scheduleOnce(500 millis) {
ponger ! Ping
}