FEL-表达式

FEL-表达式Fel 是轻量级的高效的表达式计算引擎 Z Fel 在源自于企业项目 设计目标是为了满足不断变化的功能需求和性能需求 Fel 是开放的 引擎执行中的多个模块都可以扩展或替换 Fel 的执行主要是通过函数实现 运算符 等都是 Fel 函数 所有这些函数都是可以替换的 扩展函数也非常简单 Fel 有双引擎 同时支持解释执行和编译执行 可以根据性能要求选择执行方式 编译执行就是将表

Fel是轻量级的高效的表达式计算引擎[Z]

Fel在源自于企业项目,设计目标是为了满足不断变化的功能需求和性能需求。

Fel是开放的,引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现,运算符(+、-等都是Fel函数),所有这些函数都是可以替换的,扩展函数也非常简单。

Fel有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)

Fel基于Java1.5开发,适用于Java1.5及以上版本。

表达式引擎:,欢迎交流。

Fel有多快?

通常情况下,Fel-0.7每秒可以执行千万次表达式(不包含编译时间)。速度是Jexl-2.0的20倍以上。

目前还没有发现开源的表达式引擎比Fel快。

具体的测试数据请参见http://code.google.com/p/fast-el/wiki/Performance。

为何要使用Fel?

Fel语法和API非常简单,语法与Java基本相同,几乎没有学习成本。

Fel非常快,上面已经做了简单说明。

Fel整个包只有300多KB。

Fel可以非常方便的访问数组、集合、Map的元素和对象的属性。

Fel可以非常方便的调用对象的方法和类方法(如果这些还不够,可以添加自定义函数)。

扩展Fel非常容易,扩展和修改Fel都非常简单。

Fel不能做什么?

Fel只支持表达式,不支持脚本。

Fel适用场景:

Fel适合处理海量数据,Fel良好的扩展性可以更好的帮助用户处理数据。

Fel同样适用于其他需要使用表达式引擎的地方(如果工作流、公式计算、数据有效性校验等等)

Fel使用例子:

1:算术表达式:

输出结果:67500

2:变量

使用变量,其代码如下所示:

输出结果:67500

3:访问对象属性

在Fel中,可能非常方便的访问对象属性,示例代码如下所示

4:访问数组、集合、Map

5:调用JAVA方法

输出结果:Everybody

6:自定义上下文环境

输出结果:天气:晴;温度:25

7:多层上下文环境(命名空间)

输出结果:

期望利润:50

实际利润:30

8:编译执行

执行结果:67500

备注:适合处理海量数据,编译执行的速度基本与Java字节码执行速度一样快。

9:自定义函数

执行结果:

hello fel hello fel

10:调用静态方法

如果你觉得上面的自定义函数也麻烦,Fel提供的$函数可以方便的调用工具类的方法 熟悉jQuery的朋友肯定知道”$”函数的威力。Fel东施效颦,也实现了一个”$”函数,其作用是获取class和创建对象。结合点操作符,可以轻易的调用工具类或对象的方法。

通过”$(‘class’).method“形式的语法,就可以调用任何等三方类包(commons lang等)及自定义工具类的方法,也可以创建对象,调用对象的方法。 未来版本的Fel会考虑直接注册java method。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218677.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:43
下一篇 2026年3月17日 下午11:43


相关推荐

  • OpenClaw:打造你的私人 AI 助手,把 AI 变成你的数字管家

    OpenClaw:打造你的私人 AI 助手,把 AI 变成你的数字管家

    2026年3月16日
    2
  • MacBook安装git教程,git学习这一篇就够了!

    MacBook安装git教程,git学习这一篇就够了!今天想和大家分享一下 git 想做这一期的原因是因为在实习期间 在和测试部门的主管交流需求时 她发现我对 git 一窍不通 然后叫我有空看看 git 去 这不 我就开始看看 git 我在下面放上 github 和 git 的网址方便大家访问 github github 官网 git git 官网 今天这一期我主要是从 git 是什么 如何安装 如何使用这三个方面来讲述 也算是我自己学习的一个过程 有以下安装环境需要先介绍一下 安装的机器是 MacBookpro20 非 m1 版本 我发现我的

    2026年3月19日
    2
  • python常用模块大全_python3内置模块大全

    python常用模块大全_python3内置模块大全mathmath.ceil(a):用来返回≥a的最小整数math.floor(a):用来返回≤a的最大整数round(a[,b])如果没有参数b,只有a,round()作用是四舍五入如果

    2022年7月30日
    9
  • 华为模拟器eNSP下载与安装教程(面向小白)「建议收藏」

    华为模拟器eNSP下载与安装教程(面向小白)「建议收藏」本人是电脑操作系统是win10企业版,不同操作系统,可能会有所不同。目前许多人对学习华为的网络设备十分感兴趣,但安装华为模拟器eNSP是必不可少的。下载地址:链接:https://pan.baidu.com/s/1XqSfHetChnmiaNtHpjS1oA提取码:4455PS:可能部分电脑在安装之前需要提前关闭防火墙1.打开下载好的安装包选择中文(简体),直接按确定即可2.进入安装向导3.点击“我愿意接受此协议”后,点击下一步4.选择合适的安装路径后,.

    2022年10月14日
    6
  • 矩阵可逆的充要条件证明_两个矩阵相乘所得矩阵的秩

    矩阵可逆的充要条件证明_两个矩阵相乘所得矩阵的秩矩阵可逆的充要条件有很多,在此进行总结。设A为n阶矩阵,则矩阵A可逆的充要条件为:|A|≠0;r(A)=n;A的列(行)向量组线性无关;A的特征值中没有0;A可分解为若干初等矩阵的乘积.

    2022年8月5日
    24
  • 超声波雷达应用总结「建议收藏」

    超声波雷达应用总结「建议收藏」超声波雷达应用总结超声波雷达简介超声波雷达的数学模型超声波雷达的特性超声波雷达配置情况无人驾驶中超声波主要的应用超声波雷达简介常见的超声波雷达有两种。第一种是安装在汽车前后保险杠上的,也就是用于测量汽车前后障碍物的倒车雷达,这种雷达业内称为UPA;第二种是安装在汽车侧面的,用于测量侧方障碍物距离的超声波雷达,业内称为APA。UPA超声波雷达UPA超声波雷达的探测距离一般在15~250cm之间,主要用于测量汽车前后方的障碍物。如下图所示,为单个UPA的探测范围示意图。APA超声波雷达A

    2025年10月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号