Java:用于表达式解析和评估的库,其标识符事先未知

标签 java parsing callback boolean-expression expression-evaluation

我需要计算一个 boolean 表达式。 目的是过滤一组标记的项目。 标签可以是任何名称(比如 Java 标识符)。

例如:

foo OR (bar AND !baz)

这对于标记的项目来说是正确的:

  • foo 费用
  • foo bar boo
  • 酒吧

我事先不知道需要哪些名字。 我检查过 JEXL 但它有 JexlContext ,它基本上是一个需要在评估之前填充的 Map。

我需要一些库来调用回调函数来确定标识符是真还是假。或者任何其他允许在评估之前未知标识符的机制。

它必须像啤酒一样免费(用于 Maven 插件),所以 Jep 是不可能的。

我可以使用什么?

最佳答案

您可以提供不依赖于 MapJexlContext 实现。您可以将其对 hasget 的检查视为回调,而忽略对 set 的调用,而不是在求值之前填充它。

关于Java:用于表达式解析和评估的库,其标识符事先未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479063/

相关文章:

Java泛型 super 用法

regex - 使用正则表达式进行日志解析

android - 使 Android NFC onTagDiscovered 回调线程保持 Activity 状态

java - Java 中的整数操作

java - Hibernate:无法在进程之间查看 MYSQL 中的持久数据

c - 解析具有多个分隔符的字符串

java - Java中如何检查输入是否符合任意数量的规则?

javascript - 如何在 marrionete.js 中构建调用链渲染 itemView,并使用 itemView 内的异步函数进行延迟

lua - 如何从c函数回调lua函数

java - 使用字符串并在添加节点时遇到问题的二叉树