Xtend:直接从字符串评估表达式

Xtend: evaluate expression directly from a string

Xtend 语言是否有可能直接从字符串计算表达式,例如就像 Groovy 中的 Eval。我想在 Xtend 中做这样的事情(示例来自 Groovy):

import groovy.util.Eval

assert Eval.me('2*5') == 10

如果没有内置的方法来做到这一点,最相似的替代方法是什么(如果有的话)?

P.S。需要明确的是:表达式当然不仅仅是一个简单的数学运算(如示例中所示);特别是,我想调用我自己的 Xtend 函数对列表进行一些转换。

我认为 Xtend 中没有这样的东西,所以您可能应该寻找 Java 执行此操作的库。

例如 Java EL seems like a good standard way for evaluating strings. Since EL 3 there is the ELProcessor 不再需要 JSP 并且看起来很容易使用:

ELProcessor elp = new ELProcessor();
elp.defineBean("employee", new Employee("Charlie Brown"));
String name = elp.eval("employee.name");

这里很好article about the latest features of EL,像 lambda 表达式。文章还包含一些关于集合以及如何调用外部方法的示例。