从列表中获取特定项目(流口水)

时间:2017-08-02 12:50:52

标签: java 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

我知道,我的规则是测试所有有效的字符串地址。我的要求是,我想直接转到地址列表的第二和第四个元素,并对列表中的特定项目应用一些规则。

1 个答案:

答案 0 :(得分:0)

你可以这样做(虽然我建议你改变模型,如果你能更好地反映地址之间的差异):

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

这假设您的所有Test个对象至少有4个地址。

希望它有所帮助,