优秀的编程知识分享平台

网站首页 > 技术文章 正文

Drools 的高级语法之function使用

nanyue 2024-07-25 06:09:46 技术文章 12 ℃

function关键字用于在规则文件中定义函数,就相当于java类中的方法一样。可以在规则体中调用定义的函数。使用函数的好处是可以将业务逻辑集中放置在一个地方,根据需要可以对函数进行修改。

语法结构如下:

function 返回值类型 函数名(可选参数){

//逻辑代码

}

编写测试文件

//定义一个函数

function String sayHello(String name){

return "hello I am" + name;

}

rule "rule_function"

when

$user:User(name != null)

then

//调用上面定义的函数

String ret = sayHello($user.getName());

System.out.println(ret);

end

测试代码

@Test

public void functionTest()

{

KieServices kieServices = KieServices.Factory.get();

KieContainer kieClasspathContainer = kieServices.getKieClasspathContainer();

KieSession kieSession = kieClasspathContainer.newKieSession("queryKS");

User user = new User();

user.setName("张三");

user.setLevel(12);

kieSession.insert(user);

kieSession.fireAllRules();

kieSession.dispose();

}

Tags:

最近发表
标签列表