memberOf 是用来判断某个Fact 对象的某个字段是否在一个集合(Collection/Array)当
中,用法与contains 有些类似,但也有不同,memberOf 的语法如下:
Object(fieldName memberOf value[Collection/Array])
可以看到memberOf 中集合类型的数据是作为被比较项的,集合类型的数据对象位于
memberOf 操作符后面,同时在用memberOf 比较操作符时被比较项一定要是一个变量(绑定
变量或者是一个global 对象),而不能是一个静态值。代码清单2-12 是一个演示memberOf
使用的规则示例。
package test
global String[] orderNames;
rule "rule1"
when
$order:Order(name memberOf orderNames);
then
System.out.println($order.getName());
end
代码清单中被比较对象是一个String Array 类型的global 对象。
分享到:
相关推荐
首先,我们来看规则语言的条件部分。条件部分是规则的基础,它定义了何时规则应该被触发。一个基本的条件模式是 `[绑定变量名:]Object([field 约束])`,这允许我们指定对象类型和其字段的约束。在 LHS(左侧)中,...
- **比较运算符**:如`contains`, `memberOf`, `matches`等用于条件判断。 - **关键字**:如`when`表示条件,`then`表示动作。 - **内置方法**:`update`, `insert`, `retract`用于操作工作内存中的对象状态。 4...
Drools4.0引入了新的条件元素,如`from`, `collect`, `accumulate`和`forall`,以及新的字段约束操作,包括`notmatches`, `notcontains`, `in`, `notin`, `memberOf`, `not memberOf`等。此外,新增了自索引字段`...
- **新增字段约束操作**:引入`notmatches`、`notcontains`、`in`、`notin`、`memberOf`、`not memberOf`等操作符,增加了规则表达的精确度。 - **自索引字段支持**:引入`this`作为自索引字段,简化了事实对象的...
- **`memberof`和`not memberof`**: 用于判断一个元素是否属于某个集合。 - **比较操作**: 如`==`、`、`>`等,用于比较两个值。 #### 四、全局变量 全局变量是在规则文件中声明,并在整个规则集中都可以访问的变量...
- **新的字段约束操作**:`notmatches`, `notcontains`, `in`, `notin`, `memberOf`, `not memberOf`等操作符增加了对复杂条件的支持。 - **自索引字段**:引入了`this`关键字,使得对事实对象的操作更加直观。 - **...
- **新增字段约束操作**:例如 `notmatches`, `notcontains`, `in`, `notin`, `memberOf`, `not memberOf` 等,这些操作符扩展了条件表达式的灵活性,让开发者可以更方便地进行复杂的数据筛选。 - **自索引字段**:`...
- **字段约束操作**:引入了 `not matches`, `not contains`, `in`, `not in`, `memberOf`, `not memberOf`,使得规则条件更加丰富和精确。 - **自索引字段**:`this` 字段的使用方便了对当前对象的引用。 - **...
同时,Drool 4.0 也引入了新的字段约束操作,例如 not matches, not contains, in, not in, memberOf, not memberOf 等。 核心引擎增强 Drool 4.0 的核心引擎也得到了很大的改进。例如,引擎现在支持元数据类型的...