如何在下面的 drools 规则中传递一个参数来设置年龄的比较值(18 应该是动态的)
package com.rule.models
import com.rule.models.User
rule "AgeCheck"
when
$user: User( age < 18 )
then
System.out.println("Warning, "+$user.getName()+" is below age!");
end
最佳答案
对于 Drools 中的规则,没有什么能与“参数传递”相提并论。规则中使用的数据必须来自工作内存中的事实或全局变量。
使用第一种技术看起来像这样:
rule "AgeCheck"
when
Parameter( $ageLimit: ageLimit )
$user: User( age < $ageLimit )
then ... end
Parameter
类的单个事实必须首先插入;它可能包含多个参数。
也可以使用全局变量:
global my.app.Parameter parameter
rule "AgeCheck"
when
$user: User( age < parameter.getAgeLimit() )
then ... end
有关如何安装全局的详细信息,请参阅专家手册。
关于java - 在 drools 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23410450/