Liquor Java 表达式引擎
Maven依赖
<dependency>
<groupId>org.noear</groupId>
<artifactId>liquor-eval</artifactId>
<version>1.4.0</version>
</dependency>
代码示例
package com.example.test;
import com.google.common.collect.Maps;
import org.noear.liquor.eval.CodeSpec;
import org.noear.liquor.eval.Exprs;
import java.util.HashMap;
import java.util.Map;
public class LiquorTest {
public static void main(String[] args) throws Exception {
// 数学运算 (Long)
Integer result = (Integer) Exprs.eval("1+2+3");
System.out.println(result); // 6
// 数学运算 (Double)
Double result2 = (Double) Exprs.eval("1.1+2.2+3.3");
System.out.println(result2); // 6.6
// 包含关系运算和逻辑运算
System.out.println(Exprs.eval("(1>0||0<1)&&1!=0")); // true
// 三元运算
System.out.println(Exprs.eval("4 > 3 ? \"4 > 3\" : \"4 <= 3\"")); // 4 > 3
Map<String, Object> context = Maps.newHashMap();
context.put("a", 1);
context.put("b", 2);
Object eval = Exprs.eval("(a + b) * 2", context);
System.out.println(eval);
context = new HashMap<>();
context.put("a", 1);
context.put("b", 2);
Object eval1 = Exprs.eval("int c; if (a < 0) { c=b; } else { c=0; } return c;", context);
System.out.println(eval1);
CodeSpec exp5 = new CodeSpec("Math.min(1,2)").imports(Math.class);
System.out.println(Exprs.eval(exp5));
CodeSpec exp6 = new CodeSpec("min(11,21)").imports("static java.lang.Math.*");
System.out.println(Exprs.eval(exp6));
}
}
对比Groovy表达式更简洁,有机会了在项目里试试。
积跬步以致千里,积小流以成江海。
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!