sách gpt4 ai đã đi

drools - Drool 无法正确对数字进行排序

In lại 作者:行者123 更新时间:2023-12-02 06:31:41 31 4
mua khóa gpt4 Nike

我是 Drools 的新手,正在尝试让示例程序正常工作。drools 文档 http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e9542 中给出了此示例。这个流口水的规则预计可以对整数进行排序。我刚刚更改了示例中给出的数字,但它们没有按预期排序。尝试使用drools版本5.5.0、5.5.1和master 6.0.0,但得到了相同的错误结果。

主要代码如下:

    package com.sample; public class Example2 { public static void main(String[] args) throws Exception { Number[] numbers = new Number[] { wrap(5), wrap(6), wrap(4), wrap(1), wrap(2) }; new RuleRunner().runRules(new String[] { "Example3.drl" }, numbers); } private static Integer wrap(int i) { return new Integer(i); } }

RuleRunner 类与示例中给出的相同,我认为我不应该在这里给出它,因为它会使问题变得困惑。它只是创建知识库、有状态 session ,插入上面“numbers”数组中给定的事实,然后在 session 上调用 fireAllRules 方法。

规则文件(Example3.drl)是:


规则“规则 04”
方言“mvel”
khi
$数字:数字()
不是 Number(intValue < $number.intValue)
那么
System.out.println("找到的数字,值为:"+ $number.intValue());
撤回($number);
结束

我得到的输出如下:

Loading file: Example3.drlInserting fact: 5Inserting fact: 6Inserting fact: 4Inserting fact: 1Inserting fact: 2Number found with value: 1Number found with value: 4Number found with value: 2Number found with value: 5Number found with value: 6

不是正确的预期升序排序顺序。

我可能做错了什么?我无法想象 drools 规则引擎会在这个基础级别上被破坏。

1 Câu trả lời

这似乎是 5.5.0 以后引入的错误,并且仍然存在。
此排序代码适用于 5.4.0。

Giải pháp:


而不是:
  “not Number(intValue < $number.intValue)”
如果您使用:
  “not Number(intValue() < $number.intValue) )"
然后就可以了。



未告知其是函数的非 getter 方法似乎会产生问题。

一个令人衰弱的问题,会降低评估阶段对产品的信心。

关于drools - Drool 无法正确对数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372663/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com