java jexl数学表达式_java解析表达式JEXL实现办法

1. FormulaCalculator类 Java代码 1.package test; 2. 3.import java.util.Map; 4. 5.import org.apache.commons.jexl.Expression; 6.import org.apache.commons.jexl.ExpressionFactory; 7.import org.apache.commons.jexl.JexlContext; 8. 9.public class

1. FormulaCalculator类

Java代码

1.package test;

2.

3.import java.util.Map;

4.

5.import org.apache.commons.jexl.Expression;

6.import org.apache.commons.jexl.ExpressionFactory;

7.import org.apache.commons.jexl.JexlContext;

8.

9.public class FormulaCalculator {

10.

11.    String _formula;

12.

13.    JexlContext _jexlContext;

14.

15.    Map _varmap;

16.

17.    public FormulaCalculator(){

18.

19.        _jexlContext = new JexlContext(){

20.            public Map getVars() {

21.                return _varmap;

22.            }

23.            public void setVars(Map vars) {

24.                _varmap.clear();

25.                _varmap.putAll( vars );

26.            }

27.        };

28.    }

29.

30.    public void setFormula(String formula) throws Exception{

31.        validateFormula( formula );

32.        _formula = formula;

33.    }

34.

35.    public void setVars(Map vars){

36.        _varmap = vars;

37.    }

38.

39.

40.    public Number calculate() throws Exception{

41.        Expression e = ExpressionFactory.createExpression( _formula );

42.        return (Number) e.evaluate( _jexlContext );

43.    }

44.

45.    private void validateFormula( String formula ) throws Exception{

46.        // FIXME: implementation

47.    }

48.}

package test;

import java.util.Map;

import org.apache.commons.jexl.Expression;

import org.apache.commons.jexl.ExpressionFactory;

import org.apache.commons.jexl.JexlContext;

public class FormulaCalculator {

String _formula;

JexlContext _jexlContext;

Map _varmap;

public FormulaCalculator(){

_jexlContext = new JexlContext(){

public Map getVars() {

return _varmap;

}

public void setVars(Map vars) {

_varmap.clear();

_varmap.putAll( vars );

}

};

}

public void setFormula(String formula) throws Exception{

validateFormula( formula );

_formula = formula;

}

public void setVars(Map vars){

_varmap = vars;

}

public Number calculate() throws Exception{

Expression e = ExpressionFactory.createExpression( _formula );

return (Number) e.evaluate( _jexlContext );

}

private void validateFormula( String formula ) throws Exception{

// FIXME: implementation

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值