drools_10_function

在drl文件定义function

在drl规则文件中可定义函数, 这些函数可以在规则中被使用.
示例:

package com.sample.rules
 
import com.sample.Order;

function void printInfo(String name){
   System.out.println("name: "+name) ;
}
 
rule "test"
   when 
       $order:Order()
   then 
      printInfo($order.getName()) ;            
end   

引入java的静态方法

上述 function 其实也可以使用java 静态方法代替, 在使用之前需要先用 import funtion 引入到规则文件中.

import function somePackage.SomeHelper.someFunction;

java 静态方法示例:

package com.sample;
public class SomeHelper{
    public static void printInfo(String name){
        System.out.println("name: "+name) ;
    }
}

drl 示例:

package com.sample.rules
 
import com.sample.Order;
import function com.sample.SomeHelper.printInfo; 
 
rule "test"
   when 
       $order:Order()
   then 
      printInfo($order.getName()) ;            
end   

参考

Drools规则描述语言快速手册 http://holbrook.github.io/2012/12/06/rule_language.html

posted @ 2022-10-24 18:56  harrychinese  阅读(26)  评论(0编辑  收藏  举报