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