在drools中使用决策表时,是否有更简单的方法来处理参数的Null检查?我想要做的是将java中的某些业务规则迁移到drools,然后将数据抽象为多层对象。因此,除非我对它们进行空检查,否则我无法继续。欢迎任何建议。 我想要移动到决策表的业务规则是以下形式:
> When new A().getB().getC().getData() > 0 then
> System.out.println("Result found");
写一个对应于每个字段的空检查的条件
太痛苦了先谢谢。
答案 0 :(得分:0)
对象的存在是访问其属性的基本先决条件。因此,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,只要它们存在,但是当使用电子表格符号时,规则显然也很简单。