下面是3个INT参数:a、b、c和1个字符串参数:d。以下是Java中的代码:
if (a>1) return c+d;
if (b<2) return c-d;
if (d.equals("123") return c*d;
return c+1;如何将上述代码转换为Jexl?我试了很多次,包括使用var。但它总是返回null。
发布于 2017-01-11 17:59:35
您可能使用JEXL表达式而不是脚本。只能在表达式中使用三元条件。如果-否则,应在脚本中使用返回、for、while:
JexlEngine jexl = new JexlBuilder().create();
JexlScript script = jexl.createScript(scriptText);
result = script.execute(context);请参阅http://commons.apache.org/proper/commons-jexl/reference/syntax.html
来自javadoc:
表达式与脚本不同--它只是对单个表达式的引用,而不是对多个语句的引用。这意味着'if','for','while','var‘和块{.表达式中不允许‘}’。 脚本是使用给定的一组JexlContext变量执行的一些有效的JEXL语法。脚本是由分号分隔的一组语句。语句可以是块(包含代码的大括号)、控制语句(如if和while )以及表达式和赋值语句。
https://stackoverflow.com/questions/40483370
复制相似问题