发布于 2015-04-13 17:50:12
结果表明,您可以在groovy1.x中使用as关键字将groovy Closure转换为java8lambda。
考虑下面的java类
public class Foo {
public static boolean getBar(Predicate<String> predicate) {
return predicate.test("hello");
}
}从Spock测试(在groovy中),我们可以编写
class FooSpecTest extends Specification {
def "test foo"() {
when:
boolean result = Foo.getBar({x -> x.contains("blah")} as Predicate<String>)
then:
result == true
}
}发布于 2015-04-03 23:13:13
不,建议用于Groovy 3.0
最近的2.3/2.4.1中没有:
根据您发布的link,这些评论已经得到了答复。您可以尝试使用Closures代替。
基于官方的Groovy文档:
Groovy 2.3不支持Java 8提供的新语法结构(例如lambda、方法引用、接口中的默认方法等),但您可以很好地使用JDK 8提供的新API,甚至可以使用Groovy闭包代替Java 8 lambdas。
您使用的是一个更旧的Groovy版本,如果2.3不支持它,您的版本就不会支持它。
来源:http://www.groovy-lang.org/releasenotes/groovy-2.3.html
2.4(http://www.groovy-lang.org/releasenotes/groovy-2.4.html)中没有提到任何内容
https://stackoverflow.com/questions/29440508
复制相似问题