繁体   English   中英

使用MVEL中的参数的运行时值获取表达式

[英]Get expression with runtime value of parameters in MVEL

我正在使用MVEL执行一个数学公式的表达式。 表达式是这种格式

10 *可用

我有一个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)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM