首页 > 解决方案 > Drools LHS 如何更新地图

问题描述

对不起我的糟糕表达。实际上,我问了一位主修英语但对编程知之甚少的朋友来修改我的帖子。事实证明,这个问题的意义不大。我进行了一些研究,并意识到我应该在下次询问时了解更多有关 Drools 的信息。感谢您的耐心等待,问题将被删除。

标签: drools

解决方案


我创建了一个简单的复制器来更好地了解正在发生的事情。您可以在此处找到触发这两个规则的项目。我总是建议尝试使用 Drools 原型创建一个简单的复制器,因为它更容易理解正在发生的事情。

话虽如此,您的第二条规则不会触发,因为条件this["ISELSE"] != "TRUE"不满足。事实上,您可以看到您在第一个结果中将地图的值设置为 true。

$map.put("ISELSE", "TRUE");

其他一些细节:

您不应该对诸如java.util.Map. 使用包装 Map 的特定类型。在您的模式匹配约束中尽可能具体。

另外为什么使用字符串布尔值而不是 java 布尔值?Drools 支持所有 Java 类型系统,使用更好的数据类型可能会更好。

在视频中,您会发现一些其他建议,例如使用DebugAgendaEventListener来理解规则评估


推荐阅读