目录
- 介绍
- 特性
- 使用
- 更多文献支持
介绍
Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。
特性
- 支持绝大多数运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式(?:)
- 支持操作符优先级和括号强制设定优先级
- 逻辑运算符支持短路运算。
- 支持丰富类型,例如nil、整数和浮点数、字符串、正则表达式、日期、变量等,支持自动类型转换。
- 内置一套强大的常用函数库
- 可自定义函数,易于扩展
- 可重载操作符
- 支持大数运算(BigInteger)和高精度运算(BigDecimal)
- 性能优秀
使用
maven引入
<dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><version>{version}</version></dependency>
demo举例:判断以下条件是否成立
一个19岁叫张三的人 或者 一个叫李四的女生
导包:
import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.AviatorEvaluatorInstance;
import com.googlecode.aviator.Expression;
public static void main(String[] args) {AviatorEvaluatorInstance engine = AviatorEvaluator.getInstance();String expression = "(name=='张三'&&age>=19)||(name=='李四'&&sex=='女')";checkExpression(expression);Expression compile = engine.compile(expression);Map<String, Object> env = new HashMap<>();env.put("name", "李四");env.put("age", 19);env.put("sex", "女");env.put("id", 1);final Object result = compile.execute(env);System.out.println(result);}/*** 表达式校验** @param expression 表达式*/public static void checkExpression(String expression) {// 事件表达式校验AviatorEvaluatorInstance engine = AviatorEvaluator.getInstance();try {engine.validate(expression);} catch (Exception e) {throw new BaseException(Codes.PARAMETER_MISS, "表达式错误!");}}
执行结果:
更多文献支持
github官方:https://github.com/cmlanche/aviator
使用文档:https://www.yuque.com/boyan-avfmj/aviatorscript/cpow90
就先说到这 \color{#008B8B}{ 就先说到这} 就先说到这
在下 A p o l l o \color{#008B8B}{在下Apollo} 在下Apollo
一个爱分享 J a v a 、生活的小人物, \color{#008B8B}{一个爱分享Java、生活的小人物,} 一个爱分享Java、生活的小人物,
咱们来日方长,有缘江湖再见,告辞! \color{#008B8B}{咱们来日方长,有缘江湖再见,告辞!} 咱们来日方长,有缘江湖再见,告辞!