我正在构建一个使用 JEXL 的评估器。我知道如何在 Jexl 中引入工作区,但是只允许类定义,我需要定义一个方法定义。在以下示例中,为了访问 Math 的 log 函数,我必须将其添加到函数上下文中。我希望能够评估一个表达式:“log(5)”,即不使用限定符。
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("math", Math.class);
JexlEngine jexl = new JexlBuilder().namespaces(funcs).create();
JexlExpression je = jexl.createExpression("math:log(5)");
je.evaluate();