2012-06-25 59 views
0

我正在使用MVEL來執行一個表達式,這是一個數學公式。表達在這種格式在MVEL中獲取運行時參數值的表達式

10 * availableSI

我有一個數據對象,其具有availableSI作爲具有其獲取和設置的參數。

當我說MVEL.eval(表達式,數據對象)時,它通過發現availableSI從數據對象的值執行該表達式並返回最終結果

然而,我需要這將具有運行時間值的表達式可用的SI(如果可用的SI是1000), 10 * 1000

需要幫助。

回答

0

在構造函數中調用您的函數以檢索動態值。

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) 
    } 
} 
相關問題