提问人:user2103145 提问时间:11/8/2023 更新时间:11/8/2023 访问量:40
如何使自定义的 JEJL 函数与集合一起使用
how to make customized jexl function to work with collections
问:
我尝试了很多方法,但似乎 jexl 不适用于集合和 lambda 表达式。本质上,我有一个 json 对象列表,我想在 jexl 上下文中设置一个自定义的实用程序函数,以便表达式是 集合是 Person(name, age) 对象的列表,filter 是自定义函数,用于在编码语言中实现类似的过滤逻辑,而 'a-> a.age > 10“ 是条件子句。
但是现在无论我多么努力,jexl 似乎总是在解析“a -> a.age > 10”时遇到问题,因为这是 lambda。
我得到解析错误或未定义变量错误,不确定是否有人在 jexl 中编写与集合相关的自定义函数"filter(collections, 'a -> a.age > 10')"
试图让函数接受集合,字符串或条件子句不起作用。 总是导致 jexl 出现未定义的变量或解析错误。
答:
0赞
henrib
11/8/2023
#1
JEXL 需要一些配置和自定义来适应任何用例。为了允许集合(或流)按表达式进行过滤,StreamTest.java 中有一个示例;看看 CollectionContext 和 testURICollection,这应该为你指明了正确的方向。
请注意,默认情况下,JEXL 3.3 中的权限受到更多限制,需要正确定义才能使脚本正常运行。(请参阅 JexlPermissions)
希望这会有所帮助。
评论