目录
- 介绍
- 特性
- 使用
- 更多文献支持
介绍
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}{咱们来日方长,有缘江湖再见,告辞!}
咱们来日方长,有缘江湖再见,告辞!