比较drl文件中列表中的对象

Comparing objects in a list inside drl file

我有一个像 [man1,man2,man3,man4] 类型的对象列表。

我需要比较这4个对象如下。 (man1.name == man2.name,man2.name == man3.name,man3.name == man4.name)

如何在 drl 中执行此操作。我不能像这样迭代对象,drl 正在将每个对象与所有其他对象进行比较。

鉴于 Man 对象的顺序很重要,我猜它们一定包含某种 id 或 属性 允许您对它们进行排序。如果是这种情况(并且我假设此属性的名称是 id),您可以尝试以下几行:

rule "Some Rule" 
when 
  $m1: Man()
  not Man(id > $m1.id)
  forall( 
    Man(name == $m1.name)
  )
then 
  //Action
end 

希望对您有所帮助,