2016-04-22 117 views
0

我有一個主地圖對象,裏面包含另一個地圖。現在我需要從流口水中獲得價值嗎? 我的代碼看起來像如何從地圖中的地圖中獲取值drools

HashMap<String,Object> studentsMap = new HashMap<String,Object>(); 
HashMap<String,int> marksMap = new HashMap<String,int>(); 
marksMap.put("Maths",98); 
marksMap.put("Chemistry",96); 
studentsMap.put("JohnDoe", marksMap); 

我將這個「studentsMap」對象Drools的會話和解僱的規則。 如何比較drools中的標記值(如果標記大於90,如何檢查條件)?

回答

0

我沒有試過,但還可以是這樣可以做到 rule "studentsMap"
when
entry : Entry() from $studentsMap.entrySet()
marksMap : Map() from entry.getValue() markEntry : Entry() from marksMap.entrySet() mark : Number() from markEntry.getValue()
mark > 90 then
System.out.println("mark greater than 90");
end

0

我假設你的事實名字是學生。規則如下:

rule "studentsMap" 

when 
    Student($markMap : markMaap) 
    eval($markMap["Maths"] > 90) 
then 

System.out.println("mark greater than 90"); 

end