有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组或集合中元素的java高效Drools求值

使用Drools 3.0.6(old,我知道),在已知、固定且相当大的数组或集合(contains的倒数,即“is contain in”)中查找事实的有效评估是什么。 由于Drools二进制运算符的求值是递归的,因此在StackOverflowerError中使用或一系列正常的“equals”会导致数组/集合可能包含数千个条目

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

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

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


共 (1) 个答案

  1. # 1 楼答案

    有时,您需要(或者更易于阅读)将一些计算放入对象本身。然后您可以将eval语句简化为eval(!$f.isInRange(1, 200))