流口水如何比较整数

标签 drools optaplanner

我有一个 Integer,我想将它与一些原始 int 进行比较,如下所示:

    $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"]

如何将 Integer 与其他 int 值进行比较?您能给我指出一些解释此类基础知识的文档吗?

最佳答案

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

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

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

仅当 getNumberOfItems... 调用返回大于 4 的整数时,才会分配数字。如果返回值较小,则不满足条件,并且不会评估规则。

关于流口水如何比较整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59432206/

相关文章:

java - Drools:如何迭代列表并添加到另一个列表

drools - 将包文件转换为 drls

tomcat - 使用 Drools 和 Tomcat 的问题

optaplanner - ConstraintVerifier 在测试类中未使用 ConstraintConfiguration?

java - 在 Drools 和 Optaplanner 中做数学题

java - java中用空格替换回车符

Optaplanner终止策略

java - 如何使用 OptaPlanner 和 Spring Boot 降低 SoftScore?

java - 如何在 optaplanner 中同时传递 TimeMatrix 和 DistanceMatrix