我正在尝试在 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>
例外:
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. p cannot be resolved to a variable
答案 0 :(得分:4)
如果您正在使用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