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 表达式。文章还包含一些关于集合以及如何调用外部方法的示例。
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 表达式。文章还包含一些关于集合以及如何调用外部方法的示例。