QLExpress定义方法的规则表达式

QLExpress定义方法的规则表达式,第1张

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);
    }
}

测试结果如下:

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/919420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存