kotlin 如何使定制的jexl函数与集合一起工作

nqwrtyyt  于 12个月前  发布在  Kotlin
关注(0)|答案(1)|浏览(128)

我尝试了很多方法,但似乎jexl不能很好地处理集合和lambda表达式。本质上,我有一个json对象列表,我想在jexl上下文中设置一个自定义的实用函数,以便表达式为"filter(collections, 'a -> a.age > 10')",而集合是一个Person列表。(姓名,年龄)对象,filter是自定义函数,用于在'a-> a.age > 10”时,用编码语言实现类似的过滤逻辑。是条件子句。但现在无论我多么努力,似乎jexl总是有问题解析'a -> a.age > 10”,因为这是lambda。我得到了解析错误或未定义变量错误到一个点,不确定是否有人实现了在jexl中编写与集合相关的自定义函数
试图让一个函数接受集合,字符串或条件子句不起作用。结果总是在未定义的变量或jexl分析错误。

blpfk2vs

blpfk2vs1#

JEXL需要一些配置和定制来适应任何用例。为了允许集合(或流)通过表达式过滤,StreamTest.java中有一个例子;看看CollectionContext和testURICollection,这应该会为您指明正确的方向。
注意,在JEXL 3.3中,默认情况下权限受到更多限制,需要正确定义才能使脚本正常运行。(请参阅JexlPermissions
希望这对你有帮助。

相关问题