Xtend语言中是否有可能直接从字符串中计算表达式,例如像Groovy中的Eval
。我想在Xtend中做这样的事情(例子来自Groovy):
import groovy.util.Eval
assert Eval.me('2*5') == 10
如果没有内置方法可以做到这一点,那么实现这一目标的最相似的替代方案(如果有的话)是什么?
P.S。需要明确的是:表达式当然不仅仅是一个简单的数学运算(如示例中所示);特别是,我想调用我自己的Xtend函数在列表上进行一些转换。
答案 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表达式一样。本文还包含一些关于集合以及如何调用外部方法的示例。