乐趣区

drools规则语言指南三Global全局变量

DRL 中 global 变量的定义

先看个例子,java api:

List<String> list = new ArrayList<>();
KieSession kieSession = kiebase.newKieSession();
kieSession.setGlobal("myGlobalList", list);

drl 规则文件:

global java.util.List myGlobalList;

rule "Using a global"
  when
    // Empty
  then
    myGlobalList.add("My global list");
end

注意: 不要使用 global 变量去连接条件,除非它是一个常量,有固定的值。由于 global 变量并不是在 working memory 中的,所以 drools 引擎是无法感知它的变化
总结: 通过上面的例子我们可以看出,global 变量是如何使用的,先在 drl 规则文件中定义和使用,再通过 kiessesion 的 java api 设置值。

退出移动版