最近刚接触到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条)