我有这样的规则 LHS
when
$location : Location()
$cabinets : ArrayList() from collect ( Cabinet() from $location.elements() )
then
当我在 RHS 中打印 @cabinets 的内容时,我看到它包含所有元素(还有那些不属于 Cabinet 类的元素)。
我只想从 $location>elements() 收集橱柜。
我做错了什么 ?
您的问题是关于“来自”模式,而不是“收集”模式。
以下规则应该有助于测试:
when
$location : Location()
$cabinet : Cabinet() from $location.elements()
then
这条规则应该针对所在位置的每个机柜触发。
您可以尝试在规则用户用户列表中发布您的问题
我想你会说一些类似的东西
Cabinet(class == Cabinet.class)
我不认为 Drools 正在对 Cabinet 类进行显式类型检查,因为您有它们 afaik。