我们有一个用例来评估布尔表达式。 我们今天的做法-
JexlContext jc = new MapContext();
Foo foo = new Foo();
List<Variable> variableList = new ArrayList();
variable.add(new Variable());
variable.add(new Variable());
variable.add(new Variable());
jc.set("foo", foo);
for(Variable variable : variableList){
jc.set("variable", variable);
JexlExpression e = jexl.createExpression("(foo.getBool1(variable) && foo.getBool2(variable)) || foo.getBool3(variable)");
Object o = e.evaluate(jc);
}
这允许短路,就好像foo.getBool2(variable)返回true,而foo.getBool2(variable))不需要求值。
但是,现在确定函数getBool1,getBool2,getBool3正常工作 如果将一组变量而不是一次传递给它们,效果会更好。
签名从 boolean getBool1(Variable v)to boolean getBool1(List vList)。
是否有一种方法可以使用JEXl使用一批变量实现布尔表达式短路? 我应该搬去进行设定操作吗? 任何建议表示赞赏。