我正在尝试为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