网站首页 > java教程 正文
通过前面的学习了解到,在规则体中的LHS部分是介于when和then之间的部分。主要用于模式匹配,只有匹配结果为true时,才会触发RHS部分的执行。本节我们会针对LHS部分学习几个新的用法。
复合值限制in/not in (一)
- ① 介绍
复合值限制是指超过一种匹配值的限制条件,类似于SQL语句中的in关键字。Drools规则体中的LHS部分可以使用in或者not in进行复合值的匹配。
- ② 语法结构
Object(field in (比较值1,比较值2...))
- ③ 例子
$s:Student(name in ("三三","四四","五五"))
$s:Student(name not in ("三三","四四","五五"))
- ④ 创建规则文件
创建lhs.drl
测试类
条件元素eval(二)
- ① 介绍
eval用于规则体的LHS部分,并返回一个Boolean类型的值。
- ② 语法
eval(true)
eval(false)
eval(1 == 1)
- ③ 编写drl
- ④ 运行测试类
条件元素not(三)
- ① 介绍
not用于判断Working Memory中是否存在某个Fact对象,如果不存在则返回true,如果存在则返回false。
- ② 语法结构
not Object(可选属性约束)
not Student()
not Student(age < 10)
- ③ drl
- ④ 测试类
条件元素exists(四)
- ① 介绍
exists的作用与not相反,用于判断Working Memory中是否存在某个Fact对象,如果存在则返回true,不存在则返回false。
- ② 语法结构
exists Object(可选属性约束)
exists Student()
exists Student(age < 10 && name != null)
- ③ 疑问
可能有人会有疑问,我们前面在LHS部分进行条件编写时并没有使用exists也可以达到判断Working Memory中是否存在某个符合条件的Fact元素的目的,那么我们使用exists还有什么意义?当向Working Memory中加入多个满足条件的Fact对象时,使用了exists的规则执行一次,不使用exists的规则会执行多次。
- ④ 测试类
工作内存中有2个student的对象,发现规则:rule_lhs_6触发了。。。 打印了2次。
条件元素exists(五)
- ① 介绍
规则之间可以使用extends关键字进行规则条件部分的继承,类似于java类之间的继承。
- ② 规则drl
- ③ 测试类
PS:LHS加强大概说完了,下次一起说说RHS加强。
- 上一篇: 21-规则引擎内容介绍(规则引擎使用案例场景)
- 下一篇: 25-规则引擎概述(使用规则引擎的优势)
猜你喜欢
- 2024-10-25 Spring Boot 整合流程引擎 Flowable,so easy
- 2024-10-25 规则引擎重塑业务灵活性,但是你真的会用吗?
- 2024-10-25 Java表达式求值引擎Aviator(二)(java数学表达式解析)
- 2024-10-25 高德打车通用可编排订单状态机引擎设计
- 2024-10-25 NET RulesEngine(规则引擎)(规则引擎easy rule)
- 2024-10-25 25-规则引擎概述(使用规则引擎的优势)
- 2024-10-25 21-规则引擎内容介绍(规则引擎使用案例场景)
- 2024-10-25 Aviator规则引擎最佳实践(规则引擎教程)
- 2024-10-25 开源规则引擎LiteFlow:为低代码开发带来革命性的变革
- 2024-10-25 easyrules开发java程序(javaee应用开发)
你 发表评论:
欢迎- 最近发表
-
- 一招解决vscode报java插件版本不一致以及相关缓存引起的问题
- 关于Java 8版本的理解(java中的接口怎么理解)
- Java 9 到 Java 16 的版本演进:一次模块化革命和语言的持续进化
- 如何选择合适的Java版本(如何选择jdk版本)
- 晚会互动小游戏(晚会节目互动小游戏)
- 基于JavaSwing的象棋游戏系统java休闲游戏jsp源代码Mysql
- Java 猜字母游戏!会写会玩才是真本事!
- 基于JavaSwing的贪吃蛇大作战java休闲游戏jsp源代码mysql
- Java & Python 康威生命游戏 - 命令行版
- 高玩随机种子无损速通《我的世界》10分钟不到刷新世界纪录
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)