Drools搜索地图值

时间:2016-01-06 14:55:12

标签: java dictionary drools

我正试图在Drools上创建一条规则。 我目前的代码是:

rule "Test Rule #1"
when
 obj1 : MyObject ( )
 map : ArrayList (size < 1) from collect ( HashMap ( values ( House ( windows = 3) ) ) ) from obj1.getHouses()
then
  // Do something
end

我要做的是:检查HashMap中是否有任何有3个窗口的房屋。如果没有// Do something。 要做到这一点,我试图访问obj1.getHouses()这是一个HashMap&lt;字符串,列表&lt;房屋及GT;取代。然后我正在检查这个HashMap值,并为有3个窗口的House过滤它。

但是这段代码有问题。我收到了这个错误:

  

无法分析表达式值(House(windows = 3)):   java.lang.Class无法强制转换为org.mvel2.util.MethodStub]

有人可以帮忙吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

{{1}}

您需要解开哈希映射中值的列表。然后,您可以检查具有三个窗口的房屋的结果列表。

由于您没有提供设置演示的所有代码,因此该规则未经测试。