我想检查一个集合是否包含不三个元素。在java中我会做
!(collection.contains("s1") && collection.contains("s2") && collection.contains("s3"))
如何使用drools执行此操作?我搜索了两个小时并试了一下但是找不到解决这个“简单”问题的方法。我找到了“复合值限制”这是我真正需要的,但它不适用于集合和“包含”运算符。
我很感激你的回答。
拿但
答案 0 :(得分:2)
这就是Java代码的作用:
Collection( this not contains "s1" ||
this not contains "s2" ||
this not contains "s3")
答案 1 :(得分:0)
我认为,你可以采用规则方言“java” 以下示例可以帮助您。
global java.util.ArrayList responseList
rule "checkCollectionRule"
dialect "java"
salience -1
when
eval(ifContains(responseList, val1, val2.....))
then
responseList.add(new Boolean("true"));
end
function Boolean ifContains(List responseList, String val1, String val2,....) {
return (responseList.contains("s1") && responseList.contains("s2") && responseList.contains("s3"));
}
希望这有帮助。 感谢。