我正在创建一个规则,当满足一个或多个条件时需要触发。规则如下所示:
rule "Demo Rule"
when
$data : Data (val == 1 || val == 2)
then
System.out.println($data);
end
我有一个规则测试,它有两个匹配的数据对象(val 1 和 val 2)。该规则在到达 print 语句时正确触发。但是,我找不到解析 $data 并访问各个匹配 Data 对象的方法。println 结果如下:
custom.package.Data< val: 1, text:'Test1' >
custom.package.Data< val: 2, text:'Test2' >
所以,我可以看到存在多个条目。但是尝试调用为数组 ($data[0]) 或 $data$1 或任何我能想到的都导致 Drools 解析错误(抱怨 $data 是一个 Data 对象,而不是数组或列表或其他可迭代对象) .