Drools,如何检查对象在列表中是否只出现一次

Drools,如何检查对象在列表中是否只出现一次,drools,Drools,我的工作记忆中有很多SomeObject,我想写一条规则,检查一个对象是否在这些对象中出现两次。(它不是一个列表,它只是工作记忆中的一些单独对象) 提前感谢您至少可以使用收集作为 when $n: ArrayList( size > 1 ) from collect( SomeObject() ) then: // do some action end 您还可以为要匹配的某些对象设置条件 谢谢你的快速回复,现在我有问题的包含和不包含在口水。。。您是否有SomeObject列表的包

我的工作记忆中有很多SomeObject,我想写一条规则,检查一个对象是否在这些对象中出现两次。(它不是一个列表,它只是工作记忆中的一些单独对象)


提前感谢

您至少可以使用
收集
作为

when
  $n: ArrayList( size > 1 ) from collect( SomeObject() )
then:
  // do some action
end

您还可以为要匹配的某些对象设置条件

谢谢你的快速回复,现在我有问题的包含和不包含在口水。。。您是否有SomeObject列表的包含示例?此表达式是否错误:eval(!($someList.contains)(SomeObjectEntity(Accassization.type==type.Legal))@您在eval中编写的mana aything将作为Java表达式计算,因此您不能这样编写您的条件。该条件也可以用collect as
编写。。。从collect(SomeObjectEntity(association.type==type.Legal))
检查ArrayList的大小,如上所述。也许有更简单的方法,但是现在想不出任何方法。你能帮我查询一下吗?规则是:一个someObject必须在listOfSomeObjects列表中出现一次。同一个对象在工作内存中出现两次通常是不可能的,因为同一事实出现两次是没有意义的。(事实不会因为重复而变得更加真实。)