【发布时间】:2015-01-26 18:55:07
【问题描述】:
我正在寻找一个轻量级库,它能够解析和评估 java 对象上的琐碎条件,以便在对象上实现字符串过滤器
示例:
解释如下字符串:
myObject.intField > 0 && myObject.booleanField 以 myObject 作为参数。
像 Janino 之类的东西: http://docs.codehaus.org/plugins/servlet/mobile#content/view/17273 但更面向 Bean(无需使用 getter)
可以编写我自己的解析器,但最好避免重新实现轮子。
【问题讨论】:
-
Java 从 Java 6 开始就有一个内置的脚本 API,请参阅包
javax.script的 API 文档。内置对 JavaScript 的支持,但可以使用其他脚本语言对其进行扩展。 -
看看 EL(表达式语言)有几个实现 - 例如JUEL.
-
Java 8 中的 lambdas 怎么样?
-
javax.script 需要一个 ScriptEngine 但默认引擎在平台之间可能不同(JVM 版本或 OS Windows、*ix、OSX),所以我需要为像 Rhino for JS 这样的引擎添加一个依赖项, Groovy 或其他任何东西。我不需要功能齐全的库,只需要一个简单的表达式解析器和求值器。
-
或者我错了。无论操作系统和 Java 版本(1.6+)如何,“Javascript”是否始终作为 ScriptEngine 默认提供?
标签: java expression janino