流口水如何比较整数

Drools how to compare Integer

我有一个整数,我想将它与一些原始整数进行比较:

    $day : Day()
    $itemsList : from collect(Item())
    $number : Integer() from $day.getNumberOfItemsAvailable($itemsList)
    $number > 4

但我得到

Message [id=1, kieBase=defaultKieBase, level=ERROR, path=ScoreRules.drl, line=42, column=0
text=[ERR 102] Line 42:21 mismatched input '<' in rule "rule"]

您如何将整数与其他一些整数值进行比较?你能给我指点一些说明此类基础知识的文档吗?

您需要使用带有 int 值的运算符。 评估($number.intValue()> 4)

虽然您可以按照上一个答案中的建议使用 eval 语句,但不推荐使用此类构造,因为它们无法优化。

或者,您可以在分配 $number 变量的同一行中进行检查,如下所示:

$number : Integer( this > 4 ) from $day.getNumberOfItemsAvailable($itemsList)

如果 getNumberOfItems... 调用 returns 一个大于四的整数,这只会分配数字。如果返回值较小,则不满足条件,不评估规则。