2017-09-08 67 views
1

Groovy 2.4.7這裏使用了具有Gradle座標的Akka Java API:com.typesafe.akka:akka-actor_2.11:2.5.4在Groovy中實現Akka AbstractActor會產生編譯器錯誤

我想實現一個AbstractActor,並運行到Java /阿卡API和Groovy本身之間的潛在衝突:

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

產生如下編譯器錯誤:

"Groovy:expecting EOF, found ')' @ line 18, column 5."

認爲它與消息後使用的->運算符有關。 Groovy-land中是否存在修復或解決方法?

回答

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以及。