表記のとおりです。
Java8のFunctionalInterface
群は使い勝手がよくて、そっちを主に使っていましたが、GroovyもJava8の言語仕様対応を進めてて、Groovy2.4.3から(それ以前から?)は
def func = [apply: {s -> s.size()}] as Function<String, Integer>
などと書かなくてもClosureで書けるようになっていました。
サンプルコード
import java.util.stream.Stream Stream.of('foo', 'bar', 'baz') .mapToInt{it.size()} .forEach {assert it == 3} assert Optional.of('foo') .map{it.size()} .orElse(0) == 3
やったね!