как выразить, что один объект является нулевым, когда я использую механизм правил drools

Я хочу знать, как я могу выразить, что один объект является нулевым с левой стороны, когда я использую механизм правил drools? И любой может сказать мне, как использовать ключевое слово слюни "не" и так далее. Спасибо!


person SnowQin    schedule 22.01.2014    source источник


Ответы (2)


Вы можете вызвать not в предложении when для проверки нулевых объектов:

rule "somerule"
    no-loop
    when not AnObject()
    then
      // rule body when AnObject is null
end;
person anubhava    schedule 22.01.2014
comment
Спасибо за ваш ответ, и не могли бы вы сказать мне, как выразить объект как null, как этот код: Object object = new Object(); но свойства объекта равны нулю, я хочу выразить, что объект равен нулю, так как я могу выразить? Спасибо, не могли бы вы написать подробный пример, спасибо! - person SnowQin; 22.01.2014
comment
Этот код неполный — для объекта нет определения. - person laune; 22.01.2014
comment
не могли бы вы сказать мне свой способ связи, и могу ли я подружиться с вами? - person SnowQin; 23.01.2014
comment
То, что у меня есть в моем ответе сейчас, правильно. Да, вы можете связаться со мной в LinkedIn. Подробности я указал в своем профиле. - person anubhava; 23.01.2014

Drools построен поверх Java, поэтому есть экземпляр объекта (который может иметь или не иметь нулевые свойства) или нет. Если объект является «фактом» в рабочей памяти, то он не равен нулю, и вместо этого ваша LHS должна определять, существует ли он:

exists MyObject()
not exists MyObject()

Однако, если вы пытаетесь найти факты с нулевыми свойствами, вы можете сделать это:

obj: MyObject(myProperty == null)
person Steve    schedule 22.01.2014