Java Drools使用冒号进行对象分配?

时间:2017-02-22 10:12:41

标签: java syntax drools

我正在学习Java和Drools,以便我可以编辑现有的代码库,我已经遇到了一些语法,我相信只是分配一个变量/对象,但我不确定,而且我不知道。在我错误地应用并依赖它之前,我会欣赏一些清晰度和洞察力。

RULE "Rule1"

    WHEN
        result : Result()   
        policy : Policy()   

    THEN
        logger.info("Running Rule1");
        retract(result);
END

" xxx:xxx()"我不确定... 我尝试搜索,但我最终得到静态声明等

与" xxx = new xxx();"相同或" xxx:xxx();" ?

我以前的编码经验是PHP和C#,谢谢。

1 个答案:

答案 0 :(得分:0)

模式元素是最重要的条件元素。它可能会匹配插入工作内存的每个事实。

模式包含零个或多个约束,并具有可选的模式绑定。

[ patternBinding ] 模式类型 [约束]

在最简单的形式中,没有约束,模式与给定类型的事实匹配。在以下情况中,类型为Person,这意味着模式将与工作内存中的所有Person对象匹配:

Person()

要引用匹配的对象,请使用模式绑定变量,例如$ p。 ('$'不是强制性的,只是一种惯例。)

$p: Person()

属性可以绑定到变量:

Person( $firstAge : age ) // binding

请注意,“绑定”不是“分配”; “绑定变量”不是“变量”,因为它在C#或PHP中是已知的。