Vert.x上的Scala编译错误

时间:2014-11-26 14:55:32

标签: scala vert.x

我不是Scala专家。我只想在Vert.x上运行一个简单的Verticle示例。

class ScalaServer extends Verticle {
  override def start() {
    vertx.setPeriodic(1000, { timerId: Long =>
      vertx.eventBus.publish("news-feed", "News from Scala")
    })
  }
}

但是当我在Vert.x上运行此代码时,编译器会抱怨以下消息:

error: type mismatch;
 found   : scala.Long => org.vertx.java.core.eventbus.EventBus
 required: org.vertx.java.core.Handler[java.lang.Long]
    vertx.setPeriodic(1000, { timerId: Long =>
                                            ^ 

也许有人会立即看到错误。

1 个答案:

答案 0 :(得分:1)

  

发现:scala.Long => org.vertx.java.core.eventbus.EventBus   必需:org.vertx.java.core.Handler [java.lang.Long]

尝试按照:

class ScalaServer extends Verticle {
  override def start() {
    vertx.setPeriodic(1000, new Handler[java.lang.Long]() {
      def handle(timerID: java.lang.Long) = {
        vertx.eventBus.publish("news-feed", "News from Scala")
      }
    });
  }
}