drools - Drools LHS 如何更新地图
问题描述
对不起我的糟糕表达。实际上,我问了一位主修英语但对编程知之甚少的朋友来修改我的帖子。事实证明,这个问题的意义不大。我进行了一些研究,并意识到我应该在下次询问时了解更多有关 Drools 的信息。感谢您的耐心等待,问题将被删除。
解决方案
我创建了一个简单的复制器来更好地了解正在发生的事情。您可以在此处找到触发这两个规则的项目。我总是建议尝试使用 Drools 原型创建一个简单的复制器,因为它更容易理解正在发生的事情。
话虽如此,您的第二条规则不会触发,因为条件this["ISELSE"] != "TRUE"
不满足。事实上,您可以看到您在第一个结果中将地图的值设置为 true。
$map.put("ISELSE", "TRUE");
其他一些细节:
您不应该对诸如java.util.Map
. 使用包装 Map 的特定类型。在您的模式匹配约束中尽可能具体。
另外为什么使用字符串布尔值而不是 java 布尔值?Drools 支持所有 Java 类型系统,使用更好的数据类型可能会更好。
在视频中,您会发现一些其他建议,例如使用DebugAgendaEventListener
来理解规则评估
推荐阅读
- ansible - 如何使用 ansible 设置 logrotation?
- python - 使用 Pandas 标头问题解析脏文本文件
- c - C 程序帮助使用 getopt 和命令行参数在 Unix/Linux 中打开文件
- ios - Swift,FirebaseAuth:取消链接提供者 user.providerData 后仍包含 providerID
- python - 将 Python 与带有 IF 语句的 Schedule 库一起使用
- c# - 如何在 Visual Studio 中删除调试器建议的约束
- java - 为什么 Spring Security 身份验证会导致 CORS 错误
- syntax - 在文本输入下创建按钮时如何修复错误?
- python - 2个字符串之间的删除距离的算法问题
- c# - Is it possible to distinguish between attachments added with drag and drop and via the attachment menu button