Fel是开放的,引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现,运算符(+、-等都是Fel函数),所有这些函数都是可以替换的,扩展函数也非常简单。
Fel有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)
FEL可以进行算数运算以及逻辑运算,也可以调用类的静态方法、非静态方法。
只需要一个jar包:
1. 简单使用
1. 简单计算
private static voidcalculate() {//算数运算
FelEngine fel = newFelEngineImpl();
Object result= fel.eval("1.5898*1+75");
System.out.println(result);//逻辑运算
Object result2 = fel.eval("1 == 2 || '1'.equals('1')");
System.out.println(result2);
}
结果:
76.5898
true
2. 变量用法
private static voidvariables() {//变量
FelEngine fel = newFelEngineImpl();
FelContext ctx=fel.getContext();
ctx.set("单价", 1.5898);
ctx.set("数量", 1);
ctx.set("运费", 75);
Object result= fel.eval("单价*数量+运费");
System.out.println(result);
}
结果:
76.5898
3. 访问对象的方法
private static voidobject()