QLExpress定义方法的规则表达式

QLExpress定义方法的规则表达式

最近刚接触到QLExpress组件,通过学习接触到很多规则表达式,下面简单分析一下如何用QLExpress脚本语言定义方法并调用该方法。请看下面详细的代码:

public class FunctionTest {
    @Test
    public void testFunction() throws Exception {
        ExpressRunner runner = new ExpressRunner(false, true);
        String exp = ""
            + "function abc(int a, int b) {"
            + "    return a + b;"
            + "}"
            + "return abc(1 + 100, 2 * 100)";
        IExpressContext<String, Object> context = new DefaultContext<>();
        Object result = runner.execute(exp, context, null, false, false);
        System.out.println(result);
    }

先举一个简单的例子,和我们刚开始学java语言编码习惯一样,创建方法并调用方法,别忘记return(很多同学在开始学习的时候都会忘记返回调用值)。
在看一个例子,代码如下:

public void testFunction3() throws Exception {
        ExpressRunner runner = new ExpressRunner();
        String funExpress = ""
            + "function FAILFUN(Integer errorCode,String message) {"
            + "    System.out.println(errorCode+\" \"+message);"
            + "    return NewMap(\"message\":message,\"errorCode\":errorCode,\"success\":false);"
            + "}";
        runner.loadMultiExpress("", funExpress);//简单装载一下这个方法,不执行,方便下面的脚本语言定义调用。

        String exp = "FAILFUN(-1,'error')";
        IExpressContext<String, Object> context = new DefaultContext<>();
        Object result = runner.execute(exp, context, null, false, false);
        System.out.println(result);

        String exp2 = "FAILFUN(-12,'error')";
        IExpressContext<String, Object> context2 = new DefaultContext<>();
        Object result2 = runner.execute(exp2, context2, null, false, false);
        System.out.println(result2);
    }
}

测试结果如下:

从这个例子可以看出可以更灵活的调用定义的方法,代码简洁通俗易懂。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wsgodlike

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值