流口水如何比较整数
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 一个大于四的整数,这只会分配数字。如果返回值较小,则不满足条件,不评估规则。
我有一个整数,我想将它与一些原始整数进行比较:
$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 一个大于四的整数,这只会分配数字。如果返回值较小,则不满足条件,不评估规则。