Drools:如何让所有元素都不在地图中

时间:2014-05-21 00:05:27

标签: java drools

我使用的是JBoss Drools 5.5.0规则。

我有一个ArrayList<ElementDetail>Map<String, ElementDetail>,我需要打印出ArrayList中的所有ElementDetail,而不是Map。

class ElementDetail {
    private String name;
    ...
}

ElementDetail类有一个名称变量,它被标识为Map键。

到目前为止,这是我尝试过的,但它没有给出匹配:

...
when 
    eleList : List()
    $eleDetail : ElementDetail() from eleList
    $map: Map(myMap.keySet contains $eleDetail.getName())
...

我能够在集合中找到匹配元素的类似帖子,但它没有获得地图中不匹配的元素:

1 个答案:

答案 0 :(得分:4)

好吧,你必须使用包含的否定形式,myMap不受限制。

$eleList : List()
$eleDetail : ElementDetail( $name: name ) from $eleList
$map: Map( keySet not contains $name )