Groovy:如果使用@CompileStatic,则需要调用操作符

根据文档: http : //docs.groovy-lang.org/next/html/documentation/#_call_operator

call operator()用于隐式调用名为call的方法。 对于定义调用方法的任何对象,您可以省略.call部分,而使用调用操作符。

我有一个接口:

interface StringCallback { void call(String value) } 

后来在我的代码中:

 void doSomething(StringCallback callback) { .... callback(result) } 

那么,为什么如果我使用@CompileStatic它需要我把它写成callback.call(result) ? 编译器不应该关心转换吗? 有什么办法可以使它工作(使用@CompileStatic时有这个功能)。

使用IntelliJ(v.2017.1)和Groovy v.2.5.0-alpha-1

注意:我使用接口而不是Closure的原因是使它可以从Kotlin和Java“调用”。