2017-08-02 58 views
0

我想從drools文件訪問列表的特定索引。從列表中獲取特定項目(drools)

例如:我的POJO(事實)是:

package com.test.demo; 
import java.util.List; 

public class Test { 

    private List<String> addresses; 
    private long id; 

    //Getters and Setters here 
} 

我的DRL規則是:

rule "ValidateTestBooleanCheck" 
    /* Iterating over a list */ 
    when Test($addresses : addresses) 
     String() from $addresses 
    then 
     System.out.println("Tested"); 
end 

我得到這個我的規則是對所有有效的字符串地址測試。我的要求是,我想直接進入地址列表的第二和第四個元素,並在列表中的特定項目上應用一些規則。

+0

好吧,它只是使用addresses.get(1);對於第二個元素 –

+1

您可以對此案例使用自定義字段。 –

+0

@SławomirCzaja,第四個元素呢? –

回答

0

你可以做這樣的事情(雖然我會建議你改變你的模型,如果你能更好地反映地址之間的差異):這是假設所有的Test對象至少有4

rule "Sample" 
when 
    Test($addresses : addresses) 
    $a1: String() from $addresses.get(1) 
    $a2: String() from $addresses.get(3) 
then 
    System.out.println("Second Address: "+$a1); 
    System.out.println("Fourth Address: "+$a2); 
end 

地址。

希望它有幫助,