Используйте функции Java 8, такие как Supplier и Lambdas, в файле правил Drools 7.X. - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть функция, которая принимает поставщика из функций java8.Я хочу использовать эту функцию в файле .drl.

Функция:

function Boolean isNotNull(Supplier resolver){

        System.out.println("*********** Util.isNotNull() ***************");
        Optional optional;
        try {
            optional = Optional.ofNullable(resolver.get());
        }
        catch (NullPointerException e) {
            optional = Optional.empty();
        }

        if(optional.isPresent()){
            return true;
        }

        return false;
    }

И в файле DRl, который я хочу использовать в условии когда:

      when 
        productObject: Product(isNotNull(()->type) && type=="diamond")
    then
        System.out.println(type);
    end

И ошибка, которую я получаю, это «нет подходящей альтернативы при вводе») в правиле »

У меня есть java 8 в моем пути к классам, и версия drools 7.25.Я пробовал другие предложенные способы, такие как изменение версии ecj и mvel, но я не помог.Может кто-нибудь, пожалуйста, помогите мне.

...