- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ikexpression 简易表达式解析器
IKExpression 简易表达式解析器
使用说明
目录
1. IK 表达式介绍(IK Expression Introduction)2
2. 快速入门(Quick Start)6
3. 表达式公式规范(Expression Formula Specification)12
4. 高级特性(Advance)19
1. IK 表达式介绍(IK Expression Introduction)
IK Expression 是一个开源的(OpenSource),可扩展的(Extensible),基
于 java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行
工具包。
IK Expression 不依赖于任何第三方的 java 库。它做为一个简单的 jar,可
以集成于任意的 Java应用中。这包括了 JavaEE 应用(基于应用服务器的),Java
桌面应用以及 Java WebStart 方式的应用。
IK Expression 最初诞生的原因是为了能增强工作流引擎,如 jBPM 等对流
程配置的灵活度。使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件
进行变更。经过扩展后的 IK Expression 还可以适用于各种常规业务系统的动态
条件配置,如需要图形化配置应用的场合,或是模拟 Excel 电子表格的公式运算
的场景。
同 EL 和 BeanScript 不同,IK Expression 的设计目标是面向最终用户的,
因此它被设计成语法简单(像数学算式),通俗易懂(支持中文变量及函数名)
但功能有限的解析引擎。如果你需要一个功能强大的表达式引擎,也许 IK
Expression 并不是最好的选择。
1.1 概要(OverView)
IK Expression 是一个采用逆波兰式算法结合指针栈优化的公式解析引擎,
它由表达式编译、、表达式执行、变量容器、以及函数配置管理四部分构成。它
具有以下特点:
� 支持基础运算符+ - × / % 逻辑运算符! || 三元运算符?:以及
特有的#集合运算。支持括号优先级,对,||,?:有短路优化处理。
� 支持函数执行,函数扩展,支持变量定义。
� 完整 Jar 包大小 90K,API 简单易学,超轻量级,无第三方类库依赖。
IK Expression 组件结构图
1.2 升级变更(Changes Log)
Version2.1 的变更:
� 新增 org.wltea.expression.ExpressionEvaluator. preparedCompile
(String expression , CollectionVariable variables)方法和类
org.wltea.expression.PreparedExpression 用来支持表达式预编译。
用户可以像处理 SQL语句那样,对需要循环执行的相同表达式进行预编
译处理,而后设置不同的执行参数,得到不同的计算结果。详见“样例
代码”和”API 说明”.
� 修订了对声明为 Object 类型的参数传入 Integer、Double、String 等
类型的值时,会抛出类型不匹配异常的问题。原来版本中,参数必须显
式申明为 DATATYPE_OBJECT 类型,新版本则不需要,所有 java 类型
默认继承于 Object。
� 修改了 ExpressionEvaluator 的两个 compile 方法, 不 再 抛出
IllegalExpressionException 异常,而改为运行期异常,以简化用户编
码。
Version2.0.5 的变更:
� 支持表达式的换行编辑,方便表达式编写和阅读,如:
$CALCDATE([2008-03-01],
0,0,
-(10 + (23 - 3) * (4 / 5)) % 6,
0,0,0)
� 提供了更多的开放 API,如:表达式验证 API,这使得
文档评论(0)