【发布时间】:2022-11-07 20:39:20
【问题描述】:
我正在使用JEP(Java 表达式解析器)来满足需求。当有以下格式的表达式并将变量替换为数值时,一切都会顺利进行。
例如:
String formula = "(A || B )" ;
JEP jep = new JEP();
jep.addVariable("A", -1.0);
jep.addVariable("B", 0.0);
jep.parseExpression(formula);
Number value = jep.getValue();
System.out.println("Value: " +value);
-----------------------------
Value : 0.0
但是当 A 和 B 的值是布尔值时,例如(TRUE 或 FALSE),这会失败。谁能建议 JEP 如何支持布尔输入场景?
String formula = "(A || B )" ;
JEP jep = new JEP();
jep.addVariableAsObject("A", Boolean.TRUE);
jep.addVariableAsObject("B", Boolean.TRUE);
jep.parseExpression(formula);
Object val = jep.getValueAsObject();
System.out.println("Value: " +val); // gives null
【问题讨论】:
-
在这种情况下,“失败”是什么意思?编译失败了吗?它有例外吗?如果是这样,异常/错误消息是什么?
-
我的意思是它无法编译,我似乎不知道如何将布尔值传递给变量
-
你不应该传递原语
true/false吗?FALSE和TRUE这些变量是什么? -
请看更新
-
documentation 没有提到布尔类型,所以它可能不受支持。