2016-07-20 32 views
0

決策表的行動,我插入對象「ABC」知識會話。這個對象包含一個HashMap和HashMap的包含類型「人」的對象列表,而這種「人」包含HashMap的持有人數據,如姓名,年齡,性別等。現在,因爲我有在條件看這個人來檢查年齡。如何縮短條件和在Drools中5.5.0

ABC:。。ABC()

條件
abc.getUserMap()獲得( 「personList」)getListOfPeople()getPeople()獲得( 「時代」)== $ PARAM

ACTION 「父對象或Person對象上的行動」

所以在這裏我想減少這個CONDITION代碼到最小。 例如 條件 - xyz.getPeople()獲得( 「時代」)== $ PARAM

ACTION - 。 xyz.getPeople()集($ PARAM)值= 「符合條件的」

+0

訪問某些人的年齡表達不與你的數據結構的描述一致。 - 如果你想簡化條件,簡化你的對象。我無法想象在含有Person對象的優先列表來存儲Person對象作爲一個事實地圖存儲一個人的數據有說服力的理由。 – laune

+0

@laune這是在Java中聲明嵌套對象或對象更好的辦法。優點-1。沒有不必要的設置者和獲取者2.如果想改變,代碼修改較少3.更好的時間複雜度。我寫了這個表達只是爲了給出一個想法。 –

回答

-1

在ABC類,你可以創建一個布爾方法EVAL狀況的檢查結果,Drools的允許這一點。請參閱Drools文檔中的5.6. Function部分。

+0

好的,謝謝。我會檢查這個,並讓你知道這是否有效。這與ACTION一起工作,但我不確定是否可以直接使用自定義方法,就像您在條件中所說的一樣。 –