3

这是对我之前的问题的跟进。我有一个如下形式的决策树:决策树图

我想将其转换为 Drools Expert 中的规则。insertLogical提出使用. Drools 文档说明了这一点insertLogical

insertLogical(new Something()); 与插入类似,但当没有更多事实支持当前触发规则的真实性时,对象将自动收回。

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

4

1 回答 1

4

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

于 2011-02-04T10:28:48.203 回答