在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