java - 如何将 Java 静态方法导入 Drools 文件?

标签 java drools static-methods

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 文件。

最佳答案

使用 import static 导入静态方法。

import  static  com.secbro.drools.utils.DroolsStringUtils.isEmpty;
//      ^^^^^^

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

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

(阅读 Drools 文档有很大帮助。)

关于java - 如何将 Java 静态方法导入 Drools 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45072844/

相关文章:

java - 为什么 Queue<Integer> 在这里返回 Iterable<Integer> ?

java - Java中替换没有特定前缀和后缀的字符串

java - Lucene荧光笔

java - 对数组或集合中的元素进行高效的 Drools 评估

JavaScript es6从另一个类调用静态函数

java - Spring 4 和 Hibernate 4 - GenericJDBCException : could not prepare statement

drools - 使用drools规则引擎时如何表示一个对象为null

php - 为什么PHP允许静态调用非静态方法但不允许静态调用非静态属性?

java - 在 Java 中,这些方法中哪种更好?