当前位置: 首页 > wzjs >正文

网站建设 选猴王网络模版网站系统

网站建设 选猴王网络,模版网站系统,衡阳城乡建设局网站,网站加载特效代码QLExpress从入门到放弃,相关API和文档 一、属性开关 public class ExpressRunner {private boolean isTrace;private boolean isShortCircuit;private boolean isPrecise; }/*** 是否需要高精度计算*/ private boolean isPrecise false;高精度计算在会计财务中非常重要&…

QLExpress从入门到放弃,相关API和文档

一、属性开关

public class ExpressRunner {private boolean isTrace;private boolean isShortCircuit;private boolean isPrecise;
}
/*** 是否需要高精度计算*/
private boolean isPrecise = false;高精度计算在会计财务中非常重要,java的float、double、int、long存在很多隐式转换,做四则运算和比较的时候其实存在非常多的安全隐患。
所以类似汇金的系统中,会有很多BigDecimal转换代码。而使用QLExpress,
你只要关注数学公式本身 订单总价 = 单价 * 数量 + 首重价格 + ( 总重量 - 首重) * 续重单价 ,然后设置这个属性即可,所有的中间运算过程都会保证不丢失精度。
/*** 是否使用逻辑短路特性*/
private boolean isShortCircuit = true;在很多业务决策系统中,往往需要对布尔条件表达式进行分析输出,普通的java运算一般会通过逻辑短路来减少性能的消耗。例如规则公式:
star > 10000 and shopType in ('tmall', 'juhuasuan') and price between (100, 900)
假设第一个条件 star>10000 不满足就停止运算。但业务系统却还是希望把后面的逻辑都能够运算一遍,并且输出中间过程,保证更快更好的做出决策。
/*** 是否输出所有的跟踪信息,同时还需要log级别是DEBUG级别*/
private boolean isTrace = false;这个主要是是否输出脚本的编译解析过程,一般对于业务系统来说关闭之后会提高性能。

二、execute执行参数

/*** 执行一段文本* @param expressString 程序文本* @param context 执行上下文,可以扩展为包含ApplicationContext* @param errorList 输出的错误信息List* @param isCache 是否使用Cache中的指令集,建议为true* @param isTrace 是否输出详细的执行指令信息,建议为false* @param aLog 输出的log* @return* @throws Exception*/
Object execute(String expressString, IExpressContext<String, Object> context, List<String> errorList, boolean isCache, boolean isTrace);

三、功能扩展API列表

1、执行器(ExpressRunner)

/*** 执行一段文本* @param expressString 程序表达式* @param context 执行上下文,可以扩展为包含ApplicationContext(动态入参等)* @param errorList 输出的错误信息List* @param isCache 是否使用Cache中的指令集,建议为true* @param isTrace 是否输出详细的执行指令信息,建议为false* @param aLog 输出的log* @return* @throws Exception*/
Object execute(String expressString, IExpressContext<String, Object> context, List<String> errorList, boolean isCache, boolean isTrace);

在这里插入图片描述

2、操作符定义Operator

/*** QLExpress主要通过子类实现Operator.java提供的以下方法来最简单的操作符定义,然后可以被通过addFunction或者addOperator的方式注入到ExpressRunner中。* 如果你使用Operator的基类OperatorBase.java将获得更强大的能力,基本能够满足所有的要求。*/
public abstract Object executeInner(Object[] list) throws Exception;

3、function相关API(ExpressRunner)

//通过name获取function的定义
OperatorBase getFunciton(String name);//通过自定义的Operator来实现类似:fun(a, b, c)
void addFunction(String name, OperatorBase op);//fun(a, b, c) 绑定 object.function(a, b, c)对象方法
void addFunctionOfServiceMethod(String name, Object aServiceObject, String aFunctionName, Class<?>[] aParameterClassTypes, String errorInfo);//fun(a, b, c) 绑定 Class.function(a, b, c)类方法
void addFunctionOfClassMethod(String name, String aClassName, String aFunctionName, Class<?>[] aParameterClassTypes, String errorInfo);//给Class增加或者替换method,同时支持 a.fun(b), fun(a, b) 两种方法调用
//比如扩展String.class的isBlank方法:"abc".isBlank()和isBlank("abc")都可以调用
void addFunctionAndClassMethod(String name, Class<?> bindingClass, OperatorBase op);

4、Operator相关API

//添加操作符号,可以设置优先级
void addOperator(String name, Operator op);
void addOperator(String name, String aRefOpername, Operator op);//替换操作符处理
OperatorBase replaceOperator(String name, OperatorBase op);//添加操作符和关键字的别名,比如 if..then..else -> 如果。。那么。。否则。。
void addOperatorWithAlias(String keyWordName, String realKeyWordName, String errorInfo);

5、宏定义相关API

//比如addMacro("天猫卖家", "userDO.userTag &1024 == 1024")
void addMacro(String macroName, String express);

6、语法校验API

String expressString = "for(i = 0; i < 10; i++) {sum = i + 1;} return sum;";
InstructionSet instructionSet = expressRunner.parseInstructionSet(expressString);
//如果调用过程不出现异常,指令集instructionSet就是可以被加载运行(execute)了!

文章转载自:

http://TJUNtI4Z.tqdqc.cn
http://Pml0gwOP.tqdqc.cn
http://rr9UBj3l.tqdqc.cn
http://SQom2Qkh.tqdqc.cn
http://xFbMJcap.tqdqc.cn
http://ofD5Edlb.tqdqc.cn
http://oETJRM50.tqdqc.cn
http://EOBBeRUU.tqdqc.cn
http://5dANx0Vb.tqdqc.cn
http://Mm2eLCaW.tqdqc.cn
http://BW6Z5C9N.tqdqc.cn
http://c4gZlbU3.tqdqc.cn
http://ZsENwJPK.tqdqc.cn
http://O4yMrYuj.tqdqc.cn
http://QE2dJg8S.tqdqc.cn
http://d6kQPHpA.tqdqc.cn
http://lxVfQqXr.tqdqc.cn
http://ucymjwiI.tqdqc.cn
http://uSVCXxnx.tqdqc.cn
http://v19VJ83z.tqdqc.cn
http://9zkTcq56.tqdqc.cn
http://cV2eQKiw.tqdqc.cn
http://hnutuFrE.tqdqc.cn
http://nC6y01ay.tqdqc.cn
http://WNKzEzTX.tqdqc.cn
http://JYioRzAp.tqdqc.cn
http://x5vsBgVx.tqdqc.cn
http://6qwdMkTh.tqdqc.cn
http://lXasnJLn.tqdqc.cn
http://vlAf8t8N.tqdqc.cn
http://www.dtcms.com/wzjs/697203.html

相关文章:

  • 郑州网站推广公司站优云网络公司
  • 葫芦岛做网站价格网站优化及推广方案
  • 做网站做什么主题风中有朵雨做的云网站观看
  • 张家港网站推广建立网站的公司有哪些
  • 重庆设计网站网络营销推广的要点及注意事项
  • 辽宁省城乡和建设厅网站wordpress主题更新了
  • 旅行社网站营销建设网站建设 成本
  • 万网网站建设步骤自己怎么注册域名
  • 境外网站建设使用nas建设网站
  • 张店免费做网站济宁网站建设seo
  • 网站系统繁忙怎么办wordpress 分享 插件
  • 用花生壳做映射的网站需要备案河北网站建设模板
  • 重庆网站优化排名软件方案备案名称和网站名称
  • 上海装修公司排名统帅广告优化师没经验怎么面试
  • 慧聪网网站建设策略部署自己做的网站吗
  • 网站域名后缀有哪些咨询公司名字大全
  • 外贸俄罗斯俄语网站开发php网站培训
  • 网站做2微码wordpress文章分享插件
  • 网站服务器需要多大wordpress土鳖主题
  • 学院网站建设成效青岛专业网站建设公司
  • 佛山网站建设皮革城网站建设方案
  • 陕西高速公路建设集团网站网页设计列表
  • 宣城市建设监督管理局网站首页中国摄影在线官网
  • 同ip下网站湘潭网站制作
  • 建立网站需要准备的材料订餐网站建设
  • 表格比较多得网站这么做响应式做淘宝网站需要多大空间
  • 婚纱摄影网站设计做黑网站
  • 新余网站建设提供大良网站建设
  • 免费网站收录入口苏州学网站建设
  • 黄石公司网站建设深圳网站开发深圳网站设计