My favorites | Sign in
Project Logo
                
Search
for
Updated Apr 18, 2009 by jindwcn
Labels: Featured
JSEL  

JSEL简介

JSEL是一个基于逆波兰式结构,采用JS运算规则的简单的表达式解释引擎。 同时他还是一个JSON解析引擎。

基本特征

适用场合

基本用法

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());//你也可以定义你自己的运算规则
        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);
    }
}

语法

四则运算:
+,-,*,/
取模运算:
%
正负运算:
+,-
条件运算
==,!=,<,>,>=,<=
Boolean运算(&&和||有条件短路优化)
!,&&,||
三目运算(有条件短路优化)
xxx?yy:zz

括弧(运算优先级控制)
()

List构造器(生成ArrayList)
[1,3,var1,'234']

Map构造器(生成HashMap)
{"key1":1,"key2":[item1,item2]}
全局函数语法:
parseInt("234")
成员函数调用语法:
"abc".startsWith("bc")

表达式计算性能

下载


Sign in to add a comment
Hosted by Google Code