0

我正在尝试为 drools 业务规则系统建立一个基准,因为我必须考虑 RETE 算法的特点。Drools eclispe 插件中的 RETE 视图提供了根据 drl 显示相应 RETE 网络的机会。查看下面的代码,使用此代码 RETE 视图可以工作,但如果我用 ||-operator 替换 &&-operator,RETE 视图会显示 NullPointException。有人可以解释这种行为吗?正如我所看到的,这些语句对于 ||-operator 仍然有效。

编辑:我试图准确我的问题。RETE 网络看起来是否相同 || 或 && 被使用?

package performance.drools;

declare EvalFact0
   e0_attrib0 : double
   e0_attrib1 : double
end

declare EvalFact1
   e1_attrib0 : double
   e1_attrib1 : double
end

declare EvalFact2
   e2_attrib0 : double
   e2_attrib1 : double
end

declare EvalFact3
   e3_attrib0 : double
   e3_attrib1 : double
end

rule "R0"
when
    $e0 : EvalFact0((e0_attrib0 > 0.187) && (e0_attrib1 > 0.469))
    $e1 : EvalFact1((e1_attrib0 > 0.479) && (e1_attrib1 > 0.706))
    $e2 : EvalFact2((e2_attrib0 > 0.479) && (e2_attrib1 > 0.706))
    $e3 : EvalFact3((e3_attrib0 > 0.479) && (e3_attrib1 > 0.706))
then
       // some action
end
4

0 回答 0