当前位置: 首页 > 面试题库 >

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

潘嘉佑
2023-03-14
问题内容

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

问题答案:

如果您使用的是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


 类似资料:
  • 我在尝试使用lambda表达式时遇到了这个错误。

  • 本文向大家介绍在Java中如何使用lambda表达式实现ToLongBiFunction ?,包括了在Java中如何使用lambda表达式实现ToLongBiFunction ?的使用技巧和注意事项,需要的朋友参考一下 ToLongBiFunction<T,U>是来自java.util.function函数包裹。此函数接口接受两个引用类型参数作为输入,并生成长值结果。ToLongBiFunctio

  • 本文向大家介绍在Java中如何使用Lambda表达式实现DoubleToIntFunction?,包括了在Java中如何使用Lambda表达式实现DoubleToIntFunction?的使用技巧和注意事项,需要的朋友参考一下 DoubleToIntFunction是中定义的函数接口java.util.function函数Java8版本引入的包。这个函数接口接受一个双值参数并产生一个int值的结果

  • 本文向大家介绍在Java中如何使用Lambda表达式实现DoubleToLongFunction?,包括了在Java中如何使用Lambda表达式实现DoubleToLongFunction?的使用技巧和注意事项,需要的朋友参考一下 DoubleToLongFunction是一个内置函数接口java.util.function函数Java8中引入的包。此函数接口接受双值参数并生成长值结果。Doubl

  • 如果我更改了方法的名称,它会进行编译,但它不会重写toString,因此print方法不会打印预期的内容。 这是试图定义一个日志子系统,该子系统仅在需要时(当它真的要打印时)对lambda求值,但与非lambda参数兼容。我知道其他的方法来实现它,但我想知道为什么我不能这样做,如果有一个变通办法或我做错了什么,

  • 我从转换内部传统的for循环开始,在使用AtomicInteger对计数器变量进行排序时遇到了同样的问题,但不确定如何对arrayList进行排序,而且我也无法在lambda块内定义arrayList,因为它与外部while循环中存在的I变量有依赖关系。 任何帮助都将非常感谢!!!提前道谢。 下面是我的代码片段:- 使用Java8streams/lambdas/foreach更改/优化以上函数为更