首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java中使用Aviator达式引擎处理表达式判断

java中使用Aviator达式引擎处理表达式判断

原创
作者头像
IT工作者
发布2022-05-05 16:15:56
发布2022-05-05 16:15:56
2.6K0
举报
文章被收录于专栏:程序技术知识程序技术知识

Aviator是一个高性能、轻量级的基于java实现的表达式引擎,它动态地将String类型的表达式编译成Java ByteCode并交给JVM执行。

Aviator支持所有的关系运算符和算术运算符,不支持位运算,同时支持表达式的优先级,优先级跟Java的运算符一样,并且支持通过括号来强制优先级。

示例代码:

代码语言:javascript
复制
Map<String, Object> env = new HashMap<String, Object>();
env.put("email", "test@email.com");
String name = 
(String)AviatorEvaluator.execute("email=~/([\\w0-8]+@\\w+[\\.\\w+]+)/ ? $1:'unknow'", env);

import com.googlecode.aviator.AviatorEvaluator;
for (LERule lERule:lERules) {
            String rulePatternTemplate = lERule.getRulePattern();
            String rulePatternStr = 
FreemarkerTemplateUtil.processFreemarker(rulePatternTemplate, bPBody.getBPInfo());
            if(StringUtils.isNotBlank(rulePatternStr)){
                boolean isEvent = (Boolean) AviatorEvaluator.execute(rulePatternStr);
                if(isEvent){
                    lEList.add(lERule.getLE());
                }
            }
        }

maven的坐标:

代码语言:javascript
复制
<dependency>
    <groupId>com.googlecode.aviator</groupId>
    <artifactId>aviator</artifactId>
    <version>5.2.7</version>
</dependency>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档