【问题标题】:Null Checks in Drools Decision TablesDrools 决策表中的空检查
【发布时间】:2015-03-19 16:00:24
【问题描述】:

在 drools 中使用决策表时,有没有更简单的方法来处理参数的 Null 检查?我想要做的是将java中的某些业务规则迁移到drools,因此数据被抽象为多层对象。因此,除非我对它们进行空检查,否则我无法继续。欢迎任何建议。 我要移动到决策表的业务规则是以下形式:

> When   new A().getB().getC().getData() > 0  then 
> System.out.println("Result found");

写一个对应每个字段的空值检查的条件实在是太痛苦了

提前致谢。

【问题讨论】:

    标签: java drools


    【解决方案1】:

    对象的存在是访问其属性的基本前提。因此,Drools 并不比普通的 Java 代码差。任何适用于 Java 代码的技术也适用于 Drools。

    在 Java 中解决此问题的一个简单方法是在 A 类中引入一个方法:boolean isBCDataPositive()

    使用 Drools,您还可以编写在对象不存在时不会继续评估的规则,例如

    rule "is b.c.data positive"
    when
        A( $b: B )
        B( this == $b, $c: c )
        C( this == $c, data > 0 )
    then ... end
    

    这需要插入包含的对象 A.b、A.b.c,前提是它们存在,但规则显然很简单,在使用电子表格表示法时也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多