Drools中多巢狀物件的處理

2021-08-29 06:57:06 字數 709 閱讀 7799

原來的文章就曾經提到過,在drools中,域約束好像只能適用於物件的簡單型別域,複雜物件型別的是不能用域限定方式來做的。如:

[code]

rule "weekday_balance"

salience 0

when

$customer : customer( $card : card )

$scard : $card( discount == 0.9 )

then

system.out.println("...");

end

[/code]

其中,card域就是乙個「複雜」物件。那麼上面的rule就是不合法的。

這個問題困擾多時,請教過dada,得知可以用eval來解決(或者,在3.1m中可以用from解決)。可處理了一些之後感覺還是有問題,尤其是乙個物件中有多個「複雜」物件的時候。例如下面:

[code]

public class projmem [/code]

這個類中的兩個成員都是「複雜」物件。他們表徵了乙個專案參與關係。現在我想要實現這樣的判斷:如果乙個成員mem(有id,name等屬性)參與了2個或者以上的型別tp的專案proj(有id,type等屬性),那麼輸出錯誤。可是怎麼想也不知道該如何處理?!!!

這個答案在3.06版和3.1m版中的解決方案應該不一樣吧?分別應該怎麼解決呢?哪位高手可以指導一下?

謝謝了。。。 :)

處理巢狀未知層級的物件陣列資料

不知道你們有沒有在專案中遇到特別複雜的資料,最近的專案就遇到過,其實說實話並不是資料有多複雜,主要是太多,因為很多資料的處理無非就是過濾,去重等等這幾種方式資料 const q 當讓原先的資料肯定不是這個的,這些資料只是我在網上隨便搜了個類似的,真實的資料比這複雜的很多,而且我拿到這個資料是要渲染成...

多檔案中的結構體相互巢狀

結構體可在多檔案中重複宣告多次 如 a.h 和 b.h 中都含有 struct st 所以可以有如下形式 a.h struct st1 struct st2 b.h struct st1 struct st2 a.c include a.h struct st1 b.c include b.h st...

python巢狀函式中的異常處理嘗試

最近寫 的時候突然出現了這個疑問,就是如果巢狀函式中使用異常處理,那內外層的異常處理會怎麼進行。但是網上也沒有找到滿意的結果就自己動手試了一下。內外層函式都有異常處理 defwz try 1 0except exception as e print wz函式的異常處理 e print 出錯不影響外面...