java - 检查对象是否在列表中的规则

标签 java drools drools-planner

如何通过 Drools 规则语言 (DRL) 检查对象是否也是列表的一部分?

让我们看一下考试示例。想象一下考试有一个房间和一个列表的情况。现在我想检查 Room 对象是否在列表中。是否有像 roomList.contains(rooms) 这样的函数?

我需要这个用于 DRL。

谢谢

最佳答案

对于这样的模型:

class Exam {
    Room room;
...
}
class Room {
    List<Room> roomsList;
...
}

那么你的规则可能如下所示:

rule X
when
    $exam1 : Exam()
    $exam2 : Exam( room.roomsList contains $exam1.room )
then
    // do something
end

您还可以使用“memberOf”运算符来检查元素是否是列表的成员,或者如果您使用的是 Drools 5.4+,则直接调用方法。

关于java - 检查对象是否在列表中的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925806/

相关文章:

java - 如何将多个 KieModule 部署到单个 KieBase 中

java - Drools Planner 规则分析

java - Drools Planner 构造启发式 java.lang.ClassCastException

java - 面板上文本字段的大小和位置

java - 无效方法仅在放入 'onDraw' 时有效

java - 如何从共享库调用函数

java - 在解决时间问题的同时移动链式规划实体

java - 为什么它不能在 HttpServletResponse 中允许 "<%@ include file"?

java - 错误的类格式将包从 Java 7 构建到 Java 8

java - JBoss Drools 要求