2016-09-19 57 views
0

我有兩個java對象(比方說Parent和Child..child擴展父對象)。但我只需要指定規則觸發器,而不是針對其子對象。流口水規則只指定爲其父孩子而不是爲其子女打火機

例:

when 
    $raw : Parent() 
then 
    System.out.println(" Parent") 
end 
---- 
when 
    $raw : Child() 
then 
    System.out.println(" Child") 
end 

如果我嘗試注入子對象作爲一個事實,它火兩種。我不能使用不是兒童()bz我有很多child.Thanks

最好的問候, Nipuna。

回答

0

首先,讓我說,區分Parent對象和它的任何子類的必要性很可能是一個設計缺陷。如果您需要僅適用於家長而不適用於其任何子類的規則,則表示家長將要並行處理並將處理給其子女。要解決,請不要插入父對象,但要創建另一個子類

class ChildWithoutAdditionalProperties extends Parent { 
} 

並插入此類的對象。

第二,not Child()與除Child以外的任何其他類的對象不匹配,因爲您的評論「我無法使用不是兒童()」似乎表明:它將匹配沒有任何兒童事實。

要測試的對象是某一類的,你可以比較對象的類:

rule "parent" 
when 
    $e: Parent($e.getClass == Parent.class) 
then 
    System.out.println("found Parent"); 
end 
+0

這幫助了我很多。 Thanks.Appreciated。 –

相關問題