Слюни: вставьте логику и уберите - PullRequest
3 голосов
/ 04 февраля 2011

Это продолжение моего предыдущего вопроса . У меня есть дерево решений в следующей форме: Decision tree diagram

и я хочу преобразовать это в правила в Drools Expert. Использование insertLogical было предложено , предложено . Документация Drools гласит это о insertLogical:

insertLogical(new Something()); является похоже на вставку, но объект будет автоматически убирается, когда есть больше нет фактов, подтверждающих правду действующего правила стрельбы.

Тот факт, что эти объекты убираются, полезен (поскольку у меня в памяти будут десятки тысяч объектов, и каждый из них создаст их несколько). Также есть метод retract(object), который удаляет объект из рабочей памяти. Когда я добираюсь до конечного узла и удаляю (retract) базовый объект, который должен туда попасть (следуя дереву решений), он также удаляет все эти временные объекты, созданные с помощью insertLogical во время обхода

1 Ответ

4 голосов
/ 04 февраля 2011

По моему опыту, ответ Нет , единственный объект, на который вы указали, будет извлечен из рабочей памяти Drools, а все ссылки на перекрестные объекты будут сохранены в памяти JVM.Вы можете даже повторно ввести отозванный объект обратно, если сохраните где-нибудь ссылку на объект.

...