这是我以前的question的后续操作。我有以下形式的决策树:
我想将其转换为Drools Expert中的规则。 insertLogical
的使用一直是proposed。 Drools文档说this有关insertLogical
:
insertLogical(new Something())
;是
与插入类似,但对象会
在那里自动收回
不再有事实支持事实
当前解雇规则。
这些对象被收回的事实很有用(因为我在内存中有成千上万个对象,每个对象都会创建一堆这样的对象)。还有一种方法retract(object)
,它从工作内存中删除一个对象。当我到达终端节点并删除(retract
)将到达那里的基础对象(遵循决策树)时,它还会删除遍历过程中使用insertLogical
创建的所有这些临时对象吗?
最佳答案
根据我的经验,答案是否,您指向的唯一对象将从Drools工作内存中收回,而所有跨对象引用都将保留在JVM内存中。如果将对象的引用保留在某处,您甚至可以重新注入收回的对象。