Xtend:直接从字符串计算表达式

时间:2018-02-26 10:30:30

标签: eval xtend

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

import groovy.util.Eval

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

如果没有内置方法可以做到这一点,那么实现这一目标的最相似的替代方案(如果有的话)是什么?

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

1 个答案:

答案 0 :(得分:0)

我认为Xtend中没有这样的东西,所以你应该寻找能够做到这一点的Java库。

例如Java EL似乎是评估字符串的一种很好的标准方法。由于EL 3有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表达式一样。本文还包含一些关于集合以及如何调用外部方法的示例。