表达式解析器 IKExpression

来源:互联网 发布:立体设计图软件 编辑:程序博客网 时间:2024/05/29 14:46

IK Expression 开源,可扩展基于java的表达式解析器。并且不依赖与其他jar,仅作为单独的jar提供功能。


使用场景:

场景1:当接受到字符串 "(a > 2 || b < 2) && c > 2"时,作为规则,传递过来一组map数据,a = 3 , b = 3 , c = 3需要验证表达式的boolean值。 

import java.util.ArrayList;import java.util.List;import org.wltea.expression.ExpressionEvaluator;import org.wltea.expression.PreparedExpression;import org.wltea.expression.datameta.Variable;public class Expression {public static void main(String[] args) {//定义表达式String expression = "(a > 1 || b < 2) && c < 3 ";//给表达式中的变量 [版本] 付上下文的值List<Variable> variables = new ArrayList<Variable>();variables.add(Variable.createVariable("a", 2));variables.add(Variable.createVariable("b", 2));variables.add(Variable.createVariable("c", 2));//预编译表达式PreparedExpression pe = ExpressionEvaluator.preparedCompile(expression, variables);//执行表达式Object result = pe.execute();System.out.println("Result = " + result);}}

场景2:

public static Object evaluate(String expression, Collection variables)
参数1:要传入执行的表达式。

参数2:Collection<Variable> variables表达式上下文的变量集合(参考org.wltea.expression.datameta.Variable)

返回值:表达式执行结果,可能是以下类型的 java 对象中的一种:Int、Long、Float、Double、Boolean、String、Date、List、Object。

剩下说明尽在“IKExpressoin简易表达式引擎V2.1.0使用说明.pdf”中


下载地址:表达式解析jar及说明地址


0 0
原创粉丝点击