RuleBook возвращает пустой результат - PullRequest
3 голосов
/ 29 апреля 2020

Я использую правило Book для создания правил цепочки правил следующим образом:

RuleBookBuilder.create()
      .withResultType(Boolean.class)
            .addRule(
                RuleBuilder.create()
                    .withFactType(Double.class)
                    .withResultType(Boolean.class)
                    .when(facts -> facts.get("amount_gt").getValue() > new Double(600))
                    .then((facts, result) -> {
                      result.setValue(true);
                      System.out.println(result.getValue()); //1st print statement
                    })
                    .addRule()
                    ....
                    .build())

NameValueReferableMap facts = new FactMap();
facts.setValue("amount_gt", new Double(700));

rule.run(facts);
System.out.println(rule.getResult()); //2nd print statement

Первый оператор печати печатает true (как исключено), но 2-й оператор дает Optional.empty. Может кто-нибудь сказать мне что может быть не так?

1 Ответ

0 голосов
/ 08 мая 2020

Вы, кажется, связываете правила и возвращение внешнего правила, которое вы не показываете. Если вы пытаетесь получить доступ к возврату по внутреннему правилу, вам нужно аналогичным образом соединить вызовы get ().

Я бы попытался «расцепить» правила и посмотреть, что это дает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...