Drools:insertLogical和retract

时间:2011-02-04 09:19:39

标签: java drools decision-tree expert-system

这是对我之前question的跟进。我有一个以下形式的决策树:Decision tree diagram

我希望将其转换为Drools Expert中的规则。 insertLogical的使用一直是proposed。 Drools文档说this关于insertLogical

  

insertLogical(new Something());是   类似于插入,但对象会   在那里自动收回   没有更多事实来支持真相   当前解雇规则。

这些对象被收回的事实很有用(因为我将在内存中拥有数万个对象,每个对象都会创建一堆这些对象)。还有一个方法retract(object),它从工作内存中删除一个对象。当我到达一个结束节点并删除(retract)将到达那里的基础对象(在决策树之后)时,它是否还删除了使用{{1}创建的所有这些临时对象在遍历期间?

1 个答案:

答案 0 :(得分:4)

根据我的经验,答案是,您指向的唯一对象将从Drools工作内存中撤回,而所有跨对象引用都将保留在JVM内存中。如果你在某处保留对象的引用,你甚至可以重新注入缩回的对象。