批量布尔短路

时间:2018-11-07 19:28:48

标签: jexl

我们有一个用例来评估布尔表达式。 我们今天的做法-

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使用一批变量实现布尔表达式短路? 我应该搬去进行设定操作吗? 任何建议表示赞赏。

0 个答案:

没有答案