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

Java 如何在jrxml文件中使用lambda表达式?,java,lambda,java-8,jasper-reports,Java,Lambda,Java 8,Jasper Reports,我试图在jrxml文件中使用lambda表达式来获取字段的值 我导入了适当的类,但它给了我一个错误 p不能解析为变量 如何在JasperReports的模板中使用lambda表达式 <textFieldExpression> <![CDATA[StringUtils.join(((Collection<Property>)((Object2)$F{field1}.getPropertyValue("property1")).getPropertyValue(

我试图在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>

如果您使用的是EclipseJDT编译器,首先确保您有一个相当新的版本

例如,您可以从中获取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

如果有人有同样的问题。我添加了EclipseJDT编译器依赖项,并添加了jasperreports.properties文件,其中的设置在resources文件夹的根级别指定。
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