当前位置: 首页 > news >正文

Liquor 表达式引擎基本使用

引入依赖

<dependency><groupId>org.noear</groupId><artifactId>liquor-eval</artifactId><version>1.2.7</version>
</dependency>

liquor 表达式引擎(ExpressionEvaluator)支持 java 所有的类型、及所有语法(比如泛型,lambda 表达式)。因为,它是基于 java 动态编译器及缓存构建的。

零依赖,包大小约为 36 KB。

实例化表达式引擎(全局可复用,线程安全)

ExpressionEvaluator evaluator = new ExpressionEvaluator();

常量表达式计算演示

// 数学运算 (Long)
String exp1 = "1+2+3";
Integer result = (Integer) evaluator.eval(exp1);
System.out.println(result); // 6// 数学运算 (Double)
String exp4 = "1.1+2.2+3.3";
Double result2 = (Double) evaluator.eval(exp4);
System.out.println(result2); // 6.6// 包含关系运算和逻辑运算
String exp2 = "(1>0||0<1)&&1!=0";
System.out.println(evaluator.eval(exp2)); // true// 三元运算
String exp3 = "4 > 3 ? \"4 > 3\" : 999";
System.out.println(evaluator.eval(exp3)); // 4 > 3

变量表达式计算演示

Map<String, Object> bindings = new HashMap<>();
bindings.put("a", 1);
bindings.put("b", 2);evaluator.eval("(a + b) * 2", bindings);

函数库调用演示

不支持自定义函数,但可以使用整个 JDK 里的类,及自己定义类。

CodeSpec exp5 = new CodeSpec("Math.min(1,2)").imports(Math.class);
System.out.println(evaluator.eval(exp5));
http://www.lryc.cn/news/441964.html

相关文章:

  • AI美女屠版小红书火了,被当真人推流,颜值博主慌了
  • 本地搭建我的世界服务器(JAVA)简单记录
  • 哪个快?用300万个图斑测试ArcGIS Pro的成对叠加与经典叠加
  • 超详细!百分百安装成功pytorch,建议收藏
  • web基础—dvwa靶场(四)​File Inclusion
  • 【Python】练习:控制语句(二)第1关
  • Vue3 : Pinia的性质与作用
  • 对接金蝶云星空调用即时库存信息查询API
  • pretrain Llama3
  • [附源码]SpringBoot+VUE+Java实现人脸识别系统
  • 数据库_解决SQL Server数据库log日志过大,清理日志文件方法
  • 引领长期投资新篇章:价值增长与财务安全的双重保障
  • 灾备技术演进之路 | 虚拟化无代理备份只能挂载验证和容灾吗?只能无代理恢复吗?且看科力锐升级方案
  • PowerShell install 一键部署Oracle23ai
  • 【Kubernetes】常见面试题汇总(二十五)
  • 【踩坑】装了显卡,如何让显示器从主板和显卡HDMI都输出
  • spring boot启动报错:so that it conforms to the canonical names requirements
  • unix中如何查询和修改进程的资源限制
  • 【LeetCode每日一题】——401.二进制手表
  • ROM和RAM的区别
  • tomcat的配置
  • SQL使用IN进行分组统计时如何将不存在的字段显示为0
  • MoCo对比损失
  • 01_WebRtc_一对一视频通话
  • 【小程序 - 大智慧】深入微信小程序的渲染周期
  • 《深入了解 Linux 操作系统》
  • 批评他人也需要技术
  • 安装SQL Server遇到的问题
  • java项目之编程训练系统源码(springboot)
  • MySQL的登陆错误:ERROR 1049 (42000): Unknown database ‘root‘