我有两个java对象(假设父和子......扩展父对象)。但是我只需要为父对象指定规则触发。
例如:
when
$raw : Parent()
then
System.out.println(" Parent")
end
----
when
$raw : Child()
then
System.out.println(" Child")
end
如果我尝试将子对象注入事实,那么两者都会触发。我不能使用不是孩子()bz我有很多孩子。谢谢
祝你好运, Nipuna。
答案 0 :(得分:0)
首先,我要说,区分Parent对象与其任何子类的必要性很可能是一个设计缺陷。如果您需要仅适用于Parent而不适用于其任何子类的规则,则表明Parent将与其子项并行进行处理。要解决此问题,请不要插入父对象,而是创建另一个子类
class ChildWithoutAdditionalProperties extends Parent {
}
并插入此类的对象。
其次,not Child()
与Child
之外的任何其他类的对象不匹配,因为您的评论“我无法使用not Child()”似乎表明:它将匹配缺少任何儿童事实。
要测试某个对象是否属于某个类,您可以比较该对象的类:
rule "parent"
when
$e: Parent( $e.getClass == Parent.class )
then
System.out.println( "found Parent" );
end