How to use lambda expression in jrxml file?

I am trying to use lambda expression inside jrxml file to get values ​​for my field.

I imported the relevant classes, but it gives me an error that

p cannot be resolved by a variable.

How to use lambda expression inside JasperReports templates ?.

<textFieldExpression> <![CDATA[StringUtils.join(((Collection<Property>)((Object2)$F{field1}.getPropertyValue("property1")).getPropertyValue("property2")).stream().map(p->((Object1)p.getValue()).getName()).collect(toList()),',');]]> </textFieldExpression> 

An exception:

 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. p cannot be resolved to a variable 
+3
source share
1 answer

If you are using the Eclipse JDT compiler, first make sure you have a fairly recent version.

You can get 4.5.1 from Maven and then add the following properties to your jasperreports.properties file:

 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.source=1.8 
+4
source

Source: https://habr.com/ru/post/1014023/


All Articles