静态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文件。
但它不起作用!
答案 0 :(得分:1)
Looks like 您可以将静态方法作为 function
导入 Drools...
import function com.secbro.drools.utils.DroolsStringUtils.isEmpty
...然后能够使用您最初在问题中编写的规则。
FWIW:引用静态字段 - 以正常导入方式导入带有静态字段的类(不是 static
或 function
),然后使用静态引用引用 static
字段:< /p>
import your.package.with.static.field.YourClass
...
YourClass.STATIC_FIELD
(这也适用于静态方法,如果您不想将它们导入为 function
)。
答案 1 :(得分:0)
使用import static 导入静态方法。
8.*
(编辑:)当然你不能调用需要模式的静态方法:
--inspect
(阅读Drools文档非常有用。)