<dependency> <groupId>org.noear</groupId> <artifactId>liquor-eval</artifactId> <version>1.2.7</version> </dependency>
liquor 表达式引擎(ExpressionEvaluator)支持 java 所有的类型、及所有语法(比如泛型,lambda 表达式)。因为,它是基于 java 动态编译器及缓存构建的。
零依赖,包大小约为 36 KB。
ExpressionEvaluator evaluator = new ExpressionEvaluator();
// 数学运算 (Long) String exp1 = "1+2+3"; Integer result = (Integer) evaluator.eval(exp1); System.out.println(result); // 6 // 数学运算 (Double) String exp4 = "1.1+2.2+3.3"; Double result2 = (Double) evaluator.eval(exp4); System.out.println(result2); // 6.6 // 包含关系运算和逻辑运算 String exp2 = "(1>0||0<1)&&1!=0"; System.out.println(evaluator.eval(exp2)); // true // 三元运算 String exp3 = "4 > 3 ? \"4 > 3\" : 999"; System.out.println(evaluator.eval(exp3)); // 4 > 3
Map<String, Object> bindings = new HashMap<>(); bindings.put("a", 1); bindings.put("b", 2); evaluator.eval("(a + b) * 2", bindings);
不支持自定义函数,但可以使用整个 JDK 里的类,及自己定义类。
CodeSpec exp5 = new CodeSpec("Math.min(1,2)").imports(Math.class); System.out.println(evaluator.eval(exp5));
评论删除后,数据将无法恢复
🔥 Liquor 表达式引擎基本使用(v1.2.7)
引入依赖
liquor 表达式引擎(ExpressionEvaluator)支持 java 所有的类型、及所有语法(比如泛型,lambda 表达式)。因为,它是基于 java 动态编译器及缓存构建的。
零依赖,包大小约为 36 KB。
实例化表达式引擎(全局可复用,线程安全)
常量表达式计算演示
变量表达式计算演示
函数库调用演示
不支持自定义函数,但可以使用整个 JDK 里的类,及自己定义类。