2016-04-22 6 views
0

Ich habe ein Main-Map-Objekt im Inneren enthält eine andere Karte. Jetzt muss ich den Wert daraus in Drools bekommen? Mein Code sieht aus wieWie bekomme ich einen Wert von einer Karte in einer Karte in Drogen

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); 

Ich Einsetzen dieses ‚studentsMap‘ Objekt der Sitzung geifert und die Regeln zu feuern. Wie Marken-Werte in Drools zu vergleichen (Wie Zustand überprüfen, wenn Mark größer als 90 ist)?

Antwort

0

ich nicht versucht haben, noch kann aber sein, so etwas wie dieses getan werden kann 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

Ich bin Ihr Fakt Name unter der Annahme Schüler. Die Regel sieht wie folgt aus:

rule "studentsMap" 

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

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

end 
Verwandte Themen