如何在jrxml文件中使用lambda表达式?

som*_*ame 4 java lambda jasper-reports java-8

我试图在jrxml文件中使用lambda表达式来获取我的字段的值。

我导入了适当的类,但这给了我错误

p无法解析为变量。

如何在JasperReports模板中使用Lambda表达式?

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

例外:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. p cannot be resolved to a variable
Run Code Online (Sandbox Code Playgroud)

dad*_*a67 5

如果您使用的是Eclipse JDT编译器,请首先确保您具有一个相当新的版本。

例如,您可以从Maven获得4.5.1 ,然后将以下属性添加到jasperreports.properties文件中:

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
Run Code Online (Sandbox Code Playgroud)