《Drools7.0.0.Final规则引擎教程》番外实例篇——Map使用案例详解编程语言
2023-06-13 09:20:44 时间
不少朋友在问,如何在Drools规则文件中使用Map。今天就用实例带大家了解一下map的使用方法。
测试部分代码:
@Test public void testMapUsage() { KieSession kieSession = this.getKieSession( map-group Map String, Person map = new HashMap (); Person p1 = new Person(); p1.setAge(10); map.put( p1 ,p1); Person p2 = new Person(); p2.setAge(20); map.put( p2 ,p2); kieSession.insert(map); int count = kieSession.fireAllRules(); System.out.println( Fire + count + rule(s)! }
首先,我们创建了一个map,map中存放了两个Person对象,随后将map insert到了session中。其中这两个Person的年纪是不同的。
下面看一下规则代码:
package com.rules import java.util.Map; import com.secbro.drools.model.Person; rule map-usage agenda-group map-group when $obj : Object(); $map : Map([ p1 ] != $obj); then System.out.println( p1 s age is + ((Person)$map.get( p1 )).getAge()); System.out.println( p2 s age is + ((Person)$map.get( p2 )).getAge()); end
规则中首先定义了一个Object对象,此对象肯定是存在的。另外就是给map定义一个变量,获取了map中key为p1的对象,并比较p1这个对象与$obj对象是否相当,不相等的话满足条件。在上面的过程中实现了一种从map获取对象的方法。
然后再看一下RHS部分,直接使用get方法从map中获取值,并强转为原始的对象,调用对象的对应方法。
执行结果如下:
p1 s age is 10 p2 s age is 20 Fire 1 rule(s)!
以上完整代码请于github上下载:https://github.com/secbr/drools 。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15185.html
cjavaxml相关文章
- Omapl38+国产FPGA开发板——开发案例测试手册说明(上)
- 监控案例: 监控一台业务服务器
- vrrp的配置实例_十宗罪案例简介
- Python串口通信案例
- 实例讨论数据可视化的配色思路怎么写_配色分析案例
- 互联网电商大厂的分布式事务使用案例
- Nginx配置模块详解及多站点共用80端口案例
- 【愚公系列】2023年04月 .NET CORE工具案例-基于Halcon车牌识别
- spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例详解编程语言
- 分析Linux系统故障: 实例分析与解决方案(linux故障案例)
- Linux UDP 使用案例分享(linuxudp例子)
- MySQL存储过程开发实践:一个简单的实例(mysql存储过程案例)
- MongoDB实战经验分享:探索应用案例(mongodb应用实例)
- Oracle内部采购精益采购实践案例分享(oracle 内部采购)
- MySQL实例一对一关系案例分析(mysql一对一案例)
- 分享10篇优秀的jQuery幻灯片制作教程及应用案例
- Ajax使用JSON数据格式案例
- javascript操作符(~、&、|、^、<<、>>)使用案例