我有一个简单的对象构造。 ContextDroolsObject
类有一个 Map
类型的属性,称为 objects
。在该 map 内有一个带有 ArrayList
的键 "imageThemes"
,这里的规则永远不会匹配:
import java.util.ArrayList;
import java.util.Map;
import com.my.ContextDroolsObject;
dialect 'java'
rule 'Soccer Image Theme'
salience 100
when
s : ContextDroolsObject()
objectsm : Map() from s.objects
imageThemesList : ArrayList() from outputsm.imageThemes
then
System.out.println("-----------------------soccer");
end
我也尝试过使用 List() 得到相同的结果。
如何匹配列表声明?
最佳答案
您好,您可以这样重写您的规则:
import java.util.ArrayList;
import java.util.Map;
import com.my.ContextDroolsObject;
dialect 'java'
rule 'Soccer Image Theme'
salience 100
when
s : ContextDroolsObject( imageThemesList : objects#Map.get("imageThemes") )
then
System.out.println("-----------------------soccer");
end
关于java - 如何在 Drools 规则中声明列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41870929/