问题是你传递给的论点 schedule() 方法匹配该方法的重载版本。您可以看到重载版本的签名 schedule() 在里面 的JavaDoc 。
schedule()
您尝试使用的版本如下 方法 :
Cancellable schedule(scala.concurrent.duration.FiniteDuration initialDelay, scala.concurrent.duration.FiniteDuration interval, ActorRef receiver, java.lang.Object message, scala.concurrent.ExecutionContext executor, ActorRef sender)
你错过了最后一个参数,这是一个 ActorRef 被指定为预定消息的发送者。如果 StateChecker 不关心谁发送它 CheckState 消息,然后最简单的解决方法是传入 null 作为最后一个参数:
ActorRef
StateChecker
CheckState
null
context.system() .scheduler() .schedule(startDur, freqDur, stateChecker, checkState, executor, null) // ^