Могу ли я использовать Java 8 лямбда-выражение в LHS правила drool

#java #drools

#java #пускает слюни

Вопрос:

Я хочу использовать поставщика в LHS правила для нулевой проверки. фрагмент кода :

 rule "Offer for Diamond"
when 
    productObject: Product(**Util.isNotNull(() -> type)**)
then
    productObject.setDiscount(15);
end
  

Где я использую поставщика в Util.IsNotNull(() -> type). Когда я запускаю этот код, я получаю сообщение об ошибке «Строка 7:41 нет жизнеспособной альтернативы при вводе ‘)’ в правиле «Предложение для алмаза»]«.

Используемая версия Drools Core и Kie Spring — 7.36.1.Final. Используемая версия Java: 1.8

Я также попытался установить свойства конфигурации KieConfiguration «drools.dialect.java.lngLevel» и drools.dialect.java.compiler.lngLevel в качестве свойств system и KieBaseConfiguration, но это не сработало.

Может кто-нибудь, пожалуйста, помогите мне.

Спасибо, Раджеш.

Комментарии:

1. Что вообще вы пытаетесь сделать в этом правиле? type == "diamond" уже обработает нулевую проверку.

2. Спасибо за ответ. это может быть обработка нуля. но в моем случае я написал поставщика для обработки null в иерархии объектов, например.

3. Я никогда не видел, чтобы функции со стрелками работали в слюнях. По моему опыту, уровень языка влияет только на правую сторону. Попробуйте заменить функцию arrow реализацией анонимного интерфейса.

4. Спасибо за ответ. я пробовал это, но это не сработало.

5. Пробовал что? Ваш вопрос должен включать любой альтернативный код, который вы пытались обойти проблему.