Drools 如何在调用drl的类中访问drl文件中分配的变量

Drools 如何在调用drl的类中访问drl文件中分配的变量,drools,Drools,如何访问名为rule类的类在此处设置的值此规则最好写成 package rules import beans.LoginBean; import beans.MessageBean; rule "Hello World" when $a : LoginBean(); $b: MessageBean(); eval($a.getUserName().equals("admin")) then $b.setMessag

如何访问名为rule类的类在此处设置的值此规则最好写成

package rules

import beans.LoginBean;
import beans.MessageBean;

rule "Hello World"
    when
        $a : LoginBean();
        $b: MessageBean();
        eval($a.getUserName().equals("admin"))
    then
       $b.setMessage("Admin logged in");
end

绑定变量
$a
$b
是由于工作内存中存在事实(=Java对象)而设置的。会话对象有Java API,可以用来插入这些事实,或者可以通过其他规则创建和插入这些事实。

你的问题没有意义。“类”不会“调用DRL”。没有“规则类”这样的东西。我所说的规则类是一个声明knowledbase、session和write kSession.fireAllRules()的类;好的,请帮助我访问我在写kSession.fireAllRules()的类的drl文件中设置的消息;
rule "Hello World"
when
    $a : LoginBean( userName == "admin" );
    $b: MessageBean();
then
   $b.setMessage( $a.getUserName() + " logged in");
end