Java';在内部调用trait函数时未调用s TimerTask run()函数

Java';在内部调用trait函数时未调用s TimerTask run()函数,java,scala,timer,timertask,traits,Java,Scala,Timer,Timertask,Traits,我有以下代码: trait IntervalUpdate { val updateInterval: Long def onUpdateTask(): Unit val timer: Timer = new Timer() val timerTask = new TimerTask { override def run(): Unit = onUpdateTask() } timer.scheduleAtFixedRate(timerTask, up

我有以下代码:

trait IntervalUpdate {

  val updateInterval: Long

  def onUpdateTask(): Unit

  val timer: Timer = new Timer()


  val timerTask = new TimerTask {
    override def run(): Unit =  onUpdateTask()
  }

  timer.scheduleAtFixedRate(timerTask, updateInterval, updateInterval)
}
我将这个特性混合到一些类中,并重写onUpdateTask方法

问题是当我这样做时,
run()
函数根本就没有被调用

但是,如果我执行如下操作:
override def run():Unit=println(“message”)
,则会调用它

我觉得这与
TimerTask
Timer
使用Jave代码并尝试使用mixin有关,但我认为这应该有效


非常感谢您的帮助。

我已将其付诸实施。我将代码更改为:

trait IntervalUpdate {

  val updateInterval: Long

  def onUpdateTask:() => Unit

  val timer: Timer = new Timer()


  val timerTask = new TimerTask {
    override def run(): Unit =  onUpdateTask()
  }

  timer.scheduleAtFixedRate(timerTask, updateInterval, updateInterval)
}