Groovy compiler does not accept java 8 Lambdas

closures, groovy, java-8

Solution

Yeah, the Groovy parser does not accept Java 8 Lambdas (not closures).

You can use a closure in place of it (assuming you're on Groovy 2.3.*)

ie:

Person.findAll().stream().filter( { e -> e.age > 20 } )

edit:

Groovy 3.0+ will accept lambda format

Problem

As , we know , Groovy syntax accepts closures . Today also, Java 8 adds in its syntax closure . However , When i write java8 closure in groovy file , i get an error like the following : ``` Person.findAll().stream().filter(e-> e.age > 20) ``` We get this error : ``` 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 ``` Nevertheless , the following works successully : ``` Person.findAll().stream() ```

Original source