java eval java_java实现jseval功能

java实现jseval功能

分类:计算机等级

|

更新时间:2016-07-07|

来源:转载

在实际的项目开发中,我们有时候需要在java中实现如javascript eval的功能。比如在财务系统和企业管理系统中我们经常通过比较复杂的公式进行计算,在项目中我们一般会把计算公式解析成字符串存储在数据库或配置文件中,且此公式在后期中可以进行调整,这样我们在实际运算的时候就需要对存储的公式进行解析和参数替换来得到计算结果,这样公式解析就成了个比较麻烦的事情,且很容易产生bug。现在给大家推荐一种java版的 js eval功能的控件bsh(Beanshell ),它能够帮助我们实现比 js eval更强大的功能,一下提供一个简单的实例供大家参考:

public static void main(String[] args) throws EvalError {

Interpreter bsh = new Interpreter();

StringBuffer yunsuan=new StringBuffer(" ");

yunsuan.append(" int aa=0; ");

yunsuan.append(" if(sb>ba){aa=10;} ");

yunsuan.append(" else if(sb<=ba){aa=20;} ");

String ddd=yunsuan.toString().replaceAll("sb", "300");

ddd=ddd.replaceAll("ba", "200");

bsh.eval(ddd);

int reint=Integer.valueOf(bsh.get("aa").toString());

System.out.println(reint);

}

在以上实例中,我们可以根据实际情况进行实现,比如计算公式由其它方式三方获得,参数替换等。

bsh 网址地址:

http://www.beanshell.org/

最新jar包地址:

http://www.beanshell.org/download.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值