在Drools中使用小于(或等于)

时间:2014-04-15 06:58:35

标签: operators drools optaplanner

我正在尝试为我正在处理的java项目编写Drools文件,并且我的一个规则严重依赖于小于或等于。我在几个地方读过你不应该使用<并且实际上应该使用&lt;。据推测,这意味着<=将成为&lt;=

Netbeans也用红色突出显示我的<,这表明有些不对劲。

这似乎完全疯我 - 这并不意味着改变下面的代码如下所示:

($T1.getValue()<$T2getValue)&&($T1.getOtherValue()<=$T2getOtherValue)

变为

($T1.getValue()&lt;$T2getValue)&&($T1.getOtherValue()&lt;=$T2getOtherValue)

对此有何解释?

1 个答案:

答案 0 :(得分:1)

*.drl个文件中,您可以安全地使用<>。它不需要XML或HTML转义。

例如,请注意&gt;在这个规则中,来自一个optaplanner例子:

rule "requiredCpuPowerTotal"
  when
    $computer : CloudComputer($cpuPower : cpuPower)
    $requiredCpuPowerTotal : Number(intValue > $cpuPower) from accumulate(
        CloudProcess(
            computer == $computer,
            $requiredCpuPower : requiredCpuPower),
        sum($requiredCpuPower)
    )
  then
    scoreHolder.addHardConstraintMatch(kcontext, $cpuPower - $requiredCpuPowerTotal.intValue());
end

我会写这样的代码:

T1($t1Value : value, $t1OtherValue : otherValue)
T2(value < $t1Value, otherValue <= $t1OtherValue)