2017-07-19 52 views
1

我有一個Man類型的[man1,man2,man3,man4]對象列表。在drl文件中比較列表中的對象

我需要比較如下4個對象。 (man1.name == man2.name,man2.name == man3.name,man3.name == man4.name)

如何在drl中執行此操作。我不能像這樣迭代對象,drl將每個對象與所有其他對象進行比較。

回答

0

鑑於您的Man對象的順序很重要,我猜他們必須包含某種id或允許您訂購它們的屬性。如果是這樣的話(和我假設這個屬性的名稱是id),你可以嘗試沿着這些路線的東西:

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

希望它能幫助,

+0

好了,所以..如果我有按名稱爲所有四個對象分組..有沒有辦法做到這一點? –

+0

將那些具有相同名稱的對象分組在一起..可能嗎? –