我很难理解这个部分value : value == 0?这段代码是如何工作的?
rule "My rule"
when
m : MyClass( value : value == 0)
then
end
Run Code Online (Sandbox Code Playgroud)
假设您正在使用Drools 5.4或更新的快照,您可以将任何布尔表达式编写为约束,因此value == 0约束条件中"value"是MyClass中的字段名称.
Drools还允许您使用":"将属性绑定到变量名称,如下所示:
<variable_name> : <fieldName>
Run Code Online (Sandbox Code Playgroud)
所以,你可以写:
MyClass( $var : value == 0)
Run Code Online (Sandbox Code Playgroud)
最后,由于Drools使用"上下文感知"解析器,您可以拥有一个与属性名称相同的变量,因为Drools知道之前的内容:是变量名,而不是字段.因此,在您的示例中:如果value属性等于0,则变量"value"将绑定到属性"value",约束"value == 0"将为true.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |