如何在 drools - mvel 方言中进行 null 或空检查?

How to do null or empty check in drools - mvel dialect?

当 configList 为空时,AND 逻辑不应进一步进行,但我收到此错误 - "array index out of bounds".

规则如下:

rule "testRule"
   when
       config : Config( configList != null && !configList.empty && configList[0].attribute != null )
   then
       // logic
end

由于 Drools 执行规则条件的方式,无法保证短路逻辑运算符。在某些情况下它们有效,但在其他一些情况下它们无效。

作为解决方法,您可以将现有的单一模式拆分为两个:

rule "testRule"
when
  config : Config( $configList: configList != null, configList.empty == false)
  Attribute() from $configList.get(0)
then
  // logic
end

我假设 $configListAttribute 个对象的列表。

希望对您有所帮助,