正如我们所知,Groovy语法接受闭包。现在,Java 8也添加了语法闭包。
但是,当我在groovy文件中编写java8闭包时,我得到如下错误:
Person.findAll().stream().filter(e-> e.age > 20)我们得到这个错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 7: unexpected token: -> @ line 7, column 39.
Person.findAll().stream().filter(e-> e.controllerId > 0)
^
1 error尽管如此,下面的方法还是成功的:
Person.findAll().stream() 发布于 2014-05-28 17:25:11
是的,Groovy解析器不接受Java 8 Lambdas (而不是闭包)。
您可以使用闭包来代替它(假设您使用的是Groovy2.3.*)
即:
Person.findAll().stream().filter( { e -> e.age > 20 } )编辑:
Groovy 3.0+将接受lambda格式
https://stackoverflow.com/questions/23906748
复制相似问题