为什么我不能使用indexOf()在when
的List中查找特定对象的索引?
这是一个例子。在我发表评论list.indexOf($o) > 0
后,规则执行和索引在then
部分显示正确。
declare Seq
list: List
end
rule "initSeq"
when
$p: ObjectWrapper (
...
)
$list: List () from collect (ObjectWrapper (...))
not initSeq (....)
then
Seq w = new Seq ();
w.setList($list);
end
rule "doSeq"
when:
$o: ObjectWrapper (
...
)
$rr: Seq (
...
list.indexOf($o) > 0
)
then:
DroolsLogger.debug ("index: " + $rr.getList().indexOf($o));
end
答案 0 :(得分:1)
作为替代方案,您可以从模式中删除list.indexOf($o) > 0
过滤器并添加新条件
eval($rr.getList().indexOf($o) > 0)
在规则的时间部分。
答案 1 :(得分:0)
我确认indexOf()在LHS中有效。 我仍然不明白为什么它之前没有为我工作,但现在我在LHS中有indexOf的工作规则。