JSEL表達式解釋引擎
JSEL是一個基于逆波蘭式結(jié)構(gòu),采用JS運算規(guī)則的簡單的表達式解釋引擎。 同時它還是一個JSON解析引擎。
基本特征
- 基于逆波蘭式這個簡單的計算模型,最大的特點就是簡單。
- 支持短路優(yōu)化(運算過程中,會根據(jù)需要,跳過無需計算的節(jié)點(boolean運算和三元運算有此類需求)。
- 運算規(guī)則基于前端開發(fā)人員熟悉的JavaScript,可以用于模板引擎的表達式實現(xiàn)。
- 他同時還是JSON解釋引擎的超集,可以用于解釋JSON數(shù)據(jù)源。
- 簡單的運算接口,可以簡單的重新定義運算規(guī)則。
- 由于引擎本身實現(xiàn)的簡單,程序體積非常?。↗AR文件只有22k,同類工具OGNL 168k);適合于嵌入其他對文件大小要求苛刻環(huán)境,如需要下載的webstart小程序。
基本用法
import org.xidea.el.Expression;
import org.xidea.el.ExpressionImpl;
import java.util.HashMap;
public class Test{
public static void main(String[] args){
Expression el = new ExpressionImpl("var1 +2 * var2");
//Expression el = new ExpressionImpl("var1 +2 * var2",new CalculaterImpl());//你也可以定義你自己的運算規(guī)則
HashMap context = new HashMap();
context.put("var1",111);
context.put("var2",222);
Object result1 = el.evaluate(context);//555
context.put("var2",333);
Object result2 = el.evaluate(context);//777
System.out.println("result1:");
System.out.println(result1);
System.out.println("result2:");
System.out.println(result2);
}
}
評論
圖片
表情
