Drools导入java静态方法

时间:2017-07-13 06:22:34

标签: methods static drools

静态java类和方法代码是:

public class DroolsStringUtils {
public static boolean isEmpty(String param) {
    if (param == null || "".equals(param)) {
        return true;
    }
    return false;
}

}

和drl代码是:

package com.rules

import com.secbro.drools.utils.DroolsStringUtils.isEmpty;


rule CheckIsEmpty
  when
    isEmpty("");
  then
    System.out.println("the param is not empty");
  end

但IDEA暗示"无法重新开始"关于方法' isEmpty("")'。我只想将一个静态方法从java类导入到drl文件。

但它不起作用!

2 个答案:

答案 0 :(得分:1)

Looks like 您可以将静态方法作为 function 导入 Drools...

import function com.secbro.drools.utils.DroolsStringUtils.isEmpty

...然后能够使用您最初在问题中编写的规则。

FWIW:引用静态字段 - 以正常导入方式导入带有静态字段的类(不是 staticfunction),然后使用静态引用引用 static 字段:< /p>

import your.package.with.static.field.YourClass

...

YourClass.STATIC_FIELD

(这也适用于静态方法,如果您不想将它们导入为 function)。

答案 1 :(得分:0)

使用import static 导入静态方法。

8.*

(编辑:)当然你不能调用需要模式的静态方法:

--inspect

(阅读Drools文档非常有用。)