在Groovy中实现Akka AbstractActor会产生编译器错误

时间:2017-09-08 01:24:30

标签: java groovy akka

Groovy 2.4.7使用带有Gradle坐标的Akka Java API:com.typesafe.akka:akka-actor_2.11:2.5.4

我正在尝试实现AbstractActor并遇到Java / Akka API和Groovy本身之间的潜在冲突:

class MyActor extends AbstractActor {
    @Override
    Receive createReceive() {
        receiveBuilder()
            .match(DoSomething, message -> {
            // Implement message handler if message is of type DoSomething
            }).build()
    }
}

产生以下编译器错误:

  

Groovy:期待EOF,找到')'@第18行,第5列。

认为它与消息之后使用的->运算符有关。在Groovy-land中是否存在修复或解决方法?

1 个答案:

答案 0 :(得分:2)

你已经将java的lambda表达式与groovy的闭包混淆了。所以它应该是:

class MyActor extends AbstractActor {
    @Override
    Receive createReceive() {
        receiveBuilder()
            .match(DoSomething, { message ->
            // Implement message handler if message is of type DoSomething
            }).build()
    }
}

请同时查看here