我很难理解这部分value : value == 0
?这段代码是如何工作的?
rule "My rule"
when
m : MyClass( value : value == 0)
then
end
我很难理解这部分value : value == 0
?这段代码是如何工作的?
rule "My rule"
when
m : MyClass( value : value == 0)
then
end
假设您使用的是 Drools 5.4 或更新的快照,您可以将任何布尔表达式编写为value == 0
约束,“值”是 MyClass 中的字段名称的约束也是如此。
Drools 还允许您使用“:”将属性绑定到变量名,如下所示:
<variable_name> : <fieldName>
所以,你可以写:
MyClass( $var : value == 0)
最后,由于 Drools 使用“上下文感知”解析器,您可以拥有一个与属性名称同名的变量,因为 Drools 知道 : 之前的内容是变量名称,而不是字段。因此,在您的示例中:变量“value”将绑定到属性“value”,如果 value 属性等于 0,则约束“value == 0”将为真。
希望能帮助到你。