我遵循 Drools 规则,我向其发送填充了 element 的 map ,但是当它被执行时,我有 element 。当值应该为“Y”时,为什么我得到 null?当我在 ACDebug.debug() 方法中放置断点并在 $map.put() 执行后检查 map 时,它看起来不错,它的值是“Y”,但是在我的规则执行后我有 null?有没有人有类似的问题?
import java.util.Map;
import java.util.HashMap;
import edu.abc.ACDebug;
rule "POSTPROCESSOR 8"
ruleflow-group "supress-processor"
when
$map:Map(keySet contains "STANDARD_ADDRESS:STREET_NAME")
then
ACDebug.debug($map, "Map before PUT: ");
$map.put("/locationList/sourceAddress/fullStreet",new String("Y"));
ACDebug.debug($map, "Map after PUT: ");
$map.remove("STANDARD_ADDRESS:STREET_NAME");
end
最佳答案
完成 map 更改后,您需要进行更新。这让工作内存知道您修改了 map 。
添加以下行:
update( $map );
关于java - Drools 规则中的映射和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186899/