Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drools中knowledgeSession.fireAllRules()和knowledgeSession.fireAllRules(1)之间的区别是什么?_Drools - Fatal编程技术网

Drools中knowledgeSession.fireAllRules()和knowledgeSession.fireAllRules(1)之间的区别是什么?

Drools中knowledgeSession.fireAllRules()和knowledgeSession.fireAllRules(1)之间的区别是什么?,drools,Drools,我的用例是返回第一个匹配的规则,而不是匹配所有其他规则。有办法做到这一点吗?knowledgeSession.fireAllRules(max)的意义是什么?fireAllRules(max)方法基本上会获取您想要的规则匹配量。它在内部所做的只是创建一个AgendaFilter来限制匹配的数量。(参见代理过滤器接口文档)。跳过参数意味着使用一个过滤器,该过滤器为每个可能的规则返回true,因此您将匹配所有规则 如果您想精确匹配一条规则,并且想知道它是哪条规则,那么可以将此方法与AgendaEve

我的用例是返回第一个匹配的规则,而不是匹配所有其他规则。有办法做到这一点吗?knowledgeSession.fireAllRules(max)的意义是什么?

fireAllRules(max)方法基本上会获取您想要的规则匹配量。它在内部所做的只是创建一个AgendaFilter来限制匹配的数量。(参见代理过滤器接口文档)。跳过参数意味着使用一个过滤器,该过滤器为每个可能的规则返回true,因此您将匹配所有规则

如果您想精确匹配一条规则,并且想知道它是哪条规则,那么可以将此方法与AgendaEventListener结合使用

您可以做的是:

  • 实现AgendaEventListener以存储已匹配的规则
  • 调用fireAllRules(1)或编写自己的日程筛选器,将匹配数量限制为1
  • 评估已匹配规则的侦听器
  • 但是,这并不能让您控制要匹配的规则。使用筛选器时未匹配的所有规则将在下次触发所有规则时匹配(除非再次限制规则执行等)

    fireAllRules(max)方法基本上获取您想要的规则匹配量。它在内部所做的只是创建一个AgendaFilter来限制匹配的数量。(参见代理过滤器接口文档)。跳过参数意味着使用一个过滤器,该过滤器为每个可能的规则返回true,因此您将匹配所有规则

    如果您想精确匹配一条规则,并且想知道它是哪条规则,那么可以将此方法与AgendaEventListener结合使用

    您可以做的是:

  • 实现AgendaEventListener以存储已匹配的规则
  • 调用fireAllRules(1)或编写自己的日程筛选器,将匹配数量限制为1
  • 评估已匹配规则的侦听器

  • 但是,这并不能让您控制要匹配的规则。使用筛选器时未匹配的所有规则将在下次触发所有规则时匹配(除非再次限制规则执行等)

    我已经使用了fireAllRules(1),但它不能像aspected那样工作。它不返回任何匹配的规则。但是fireAllRules()返回了一个匹配的规则你能给你的问题添加一个代码示例来看看你在做什么吗?看起来很有效我的drt中有两种规则,其中一种总是匹配的。通过fireAllRules(2)后,它起了作用。ThanksI使用了fireAllRules(1),但它没有按aspected工作。它不返回任何匹配的规则。但是fireAllRules()返回了一个匹配的规则你能给你的问题添加一个代码示例来看看你在做什么吗?看起来很有效我的drt中有两种规则,其中一种总是匹配的。通过fireAllRules(2)后,它起了作用。谢谢