这是我以前的question的后续操作。我有以下形式的决策树:

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

insertLogical(new Something());是
与插入类似,但对象会
在那里自动收回
不再有事实支持事实
当前解雇规则。

这些对象被收回的事实很有用(因为我在内存中有成千上万个对象,每个对象都会创建一堆这样的对象)。还有一种方法retract(object),它从工作内存中删除一个对象。当我到达终端节点并删除(retract)将到达那里的基础对象(遵循决策树)时,它还会删除遍历过程中使用insertLogical创建的所有这些临时对象吗?

最佳答案

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

07-26 02:20