基于字符串表达式的轻量级计算引擎 CharSequence Expression Calculate Engine(简称cece)
- 将字符串表达式解析成算术表达式并计算结果(如
a
*data.b
- 100,最终解析成参数a
的值乘以参数data
对应属性b
的值再减100,其中a
和data.b
可为单一数值,亦可为列表,若为列表需等长) - 轻量级,代码简洁便于阅读
- 扩张性良好,支持自定义操作器(默认提供加、减、乘、除、算术均值、合计、加权均值)、支持不同数值类(如 Double、BigDecimal等,可自行扩展)
- 支持SPI机制扩展自定义操作器
- 内嵌逻辑运算、条件运算
- 支持自适应列表计算,情况包含(标量
ops
标量、标量op
列表、列表op
标量、列表op
列表【等长】) - 支持
bean
的nestedProperty
作为计算参数,即data.ep.ele
最终解析为参数data
对象的ep
属性对象的ele
属性的值 - 支持计算上下文参数
- 数值类型扩展 参考BigDecimal类型加法操作器、BigCecimal类型计算引擎
- 操作器扩展 参考加法操作器、合计操作器
示例参考:BigDecimal计算引擎单元测试