1

使用 Drools 3.0.6(旧的,我知道),在已知、固定且相当大的数组或集合中查找事实的有效评估是什么(包含的倒数,即“包含在”中)。使用 OR 系列的正常“等于”会导致 StackOverflowError,因为数组/集合可以包含几千个条目,因为 Drools 二元运算符评估是递归的。

我们有一个单一的值事实和一个要匹配的值数组。当前的“代码”如下所示:

$f: Fact(name="TheFact", $data)
eval(!($data.equals("1") || $data.equals("2") || $data.equals("3") ... )) 

对于大量固定值(1,2,3,...)。我正在寻找更像“$data in (1,2,3, ...)”的东西。

4

1 回答 1

0

有时您需要(或者它更具可读性)将一些评估放入对象本身。然后你可以将 eval 语句减少到类似eval(!$f.isInRange(1, 200))

于 2009-10-24T19:10:55.630 回答