1

Drools 3.0.6 (古い、私が知っている) を使用して、既知の固定された非常に大きな配列またはコレクション (contains の逆、つまり「含まれている」) でファクトを見つけるための効率的な評価は何ですか。Drools の二項演算子の評価は再帰的であるため、配列/コレクションには数千のエントリが含まれる可能性があるため、通常の「等しい」の OR シリーズを使用すると、StackOverflowError が発生します。

単一の値のファクトと、一致する値の配列があります。現在の「コード」は次のようになります。

$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 に答える