热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java表达式解析引擎_Aviator轻量Java表达式引擎

Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。使用com.googlecode.aviatoraviator{ver

Aviator 是一个轻量级、高性能的 Java 表达式执行引擎,它动态地将表达式编译成字节码并运行。

使用

com.googlecode.aviator

aviator

{version}

最简单直观的使用:

import com.googlecode.aviator.AviatorEvaluator;

public class TestAviator {

public static void main(String[] args) {

Long result = (Long) AviatorEvaluator.execute("1+2+3");

System.out.println(result);

}

}

更加复杂的使用方式可以参考 wiki,文档已经足够详细,不在重复。

源码解析

执行表达式

主要接口

218ad30c6c44423a083b1d7dadec0ecb.png

AviatorEvaluator 最重要的一个方法

execute(String expression)

execute(String expression, Map env)

execute(String expression, Map env, boolean cached)

用来执行表达式,并获取结果。围绕这个方法也有可以传入变量的 exec 方法

exec(String expression, Object... values)

内置方法和自定义方法

自定义方法

4e7c5230b73637d643f13843c73b19f0.png

主要可以分为以下几大类,包括数学计算相关,字符串处理相关

数学计算

MathAbsFunction

MathCosFunction

MathLog10Function

MathLogFunction

MathPowFunction

MathRoundFunction

MathSinFunction

MathSqrtFunction

MathTanFunction

字符串相关

StringContainsFunction

StringEndsWithFunction

StringIndexOfFunction

StringJoinFunction

StringLengthFunction

StringReplaceAllFunction

StringReplaceFirstFunction

StringSplitFunction

StringStartsWithFunction

StringSubStringFunction

序列相关方法

SeqCompsitePredFunFunction

SeqCountFunction # count(list) 长度

SeqFilterFunction # 过滤

SeqIncludeFunction # 是否在序列中

SeqMakePredicateFunFunction

SeqMapFunction # 遍历序列

SeqPredicateFunction

SeqReduceFunction # 求和

SeqSortFunction

SeqEveryFunction # 每个都满足

SeqNotAnyFunction # 不在

SeqSomeFunction # 序列中一个元素满足

额外的方法

BinaryFunction

BooleanFunction

Date2StringFunction

DateFormatCache

DoubleFunction

LongFunction

NowFunction

PrintFunction

PrintlnFunction

RandomFunction

StrFunction

String2DateFunction

SysDateFunction

表达式语法解析

FakeCodeGenerator

演示将中缀表达式转换为后缀表达式

reference



推荐阅读
author-avatar
堵晴__晨1997_361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有