Я использую глобальную карту в слюне для хранения значений поиска для проверки.Map
< /code>
и передается в двигатель как глобальный, так что правило (укороченное до основных) выглядит следующим образом: < /p>
import java.util.Set;
global java.util.Map lookupValues;
dialect "java"
rule "rule"
agenda-group "SYSTEM"
when
$lookup : Set() from lookupValues["KEY"]
//Alternative
//$lookup : Set() from lookupValues.get("KEY")
then
System.out.println("fail")
end
< /code>
Я хочу использовать $ lookup в качестве набора, чтобы я мог позже проверить другие значения, использующие содержит. Но объявление об этом как набор предотвращает выполнение части RHS.import java.util.*;
global java.util.Map lookupValues;
dialect "java"
rule "rule"
agenda-group "SYSTEM"
when
$rawLookup : Object() from lookupValues.get("KEY")
then
Set values = (Set)lookupValues.get("KEY");
System.out.println("Value: " + values+", "+values.getClass());
end
< /code>
prints: < /p>
Value: [id3, id2, id1], class java.util.HashSet
< /code>
Как я и ожидал. /п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-drools