在drools的列表中收集事实的任何特定属性值

时间:2015-04-20 15:16:11

标签: java drools rule-engine

我有一个类似于以下pojo的pojo

public class TestData {
    int number;
    String name;
    //Getters, setters, rest of class
}

此pojo的多个对象将插入到规则引擎中。现在我想要一个从所有插入的pojo通过规则收集name attribute的列表。 ie List<String>表示插入的pojo中的名称。

由于 Shorav

1 个答案:

答案 0 :(得分:3)

这个非常简单的规则收集TestData事实中的所有名称:

rule "collect names"
when
    accumulate( TestData( $n: name ); $names: collectList( $n ) )
then
    // ... $names is a List containing String objects
end

请注意,列表$names编译为List<?>。右侧的处理可能必须将列表元素强制转换为String