我正在使用 MVEL 来执行一个数学公式的表达式。表达式是这种格式
10 * 可用SI
我有一个 DataObject,它有 availableSI 作为参数,它有它的 getter 和 setter。
当我说 MVEL.eval(expression,DataObject) 时,它通过从数据对象中查找 availableSI 的值来执行表达式并返回最终结果
但是,我需要具有 availableSI 运行时值的表达式(如果avaiableSI 为 1000),10 * 1000
需要帮忙。
我正在使用 MVEL 来执行一个数学公式的表达式。表达式是这种格式
10 * 可用SI
我有一个 DataObject,它有 availableSI 作为参数,它有它的 getter 和 setter。
当我说 MVEL.eval(expression,DataObject) 时,它通过从数据对象中查找 availableSI 的值来执行表达式并返回最终结果
但是,我需要具有 availableSI 运行时值的表达式(如果avaiableSI 为 1000),10 * 1000
需要帮忙。
在构造函数中调用您的函数以检索动态值。
public class Rules extends SimpleVariableResolverFactory
{
public Rules()
{
super(new HashMap());
String newValue = callToYourFunction();
super.createVariable("availableSI" , newValue);
}
public static void main(String[] argv)
{
Rules arf = new Rules();
String expression="avaiableSI * 10"; //Your expression
Serializable compiledExpression = MVEL
.compileExpression(expression);
System.out.println(expression + " == "
+ MVEL.executeExpression(compiledExpression, arf)
}
}