带有布尔变量的Drools规则
我想在我的drl文件中声明一个布尔变量,并想基于该变量的值编写一个规则。我找不到这方面的好例子 我试着说:带有布尔变量的Drools规则,drools,Drools,我想在我的drl文件中声明一个布尔变量,并想基于该变量的值编写一个规则。我找不到这方面的好例子 我试着说: declare Flag flag: Boolean end 在其中一条规则中,我修改如下: flag = Boolean.TRUE; 我的规则是: rule "<210> Determine flag" when Flag(flag == true) ... end 规则“确定标志” 什么时候 标志(标志==true) ...
declare Flag
flag: Boolean
end
在其中一条规则中,我修改如下:
flag = Boolean.TRUE;
我的规则是:
rule "<210> Determine flag"
when
Flag(flag == true)
...
end
规则“确定标志”
什么时候
标志(标志==true)
...
终止
但它给了我错误,因为无法解析标志。您不能像(我认为)您尝试的那样以通常的方式声明变量。请阅读Drools文档并区分绑定变量、全局变量、事实及其字段和右侧局部变量(在静态Java方法中) 要查看带有布尔字段的
declare
如何工作,请使用以下DRL代码:
declare Flag
flag: Boolean
end
rule "hoist a Flag"
when
not Flag()
then
insert( new Flag( true ) );
end
rule "a true Flag"
when
Flag( flag )
then
System.out.println( "The Flag.flag is true." );
end
你不能像(我认为)你试图做的那样用通常的方式声明变量。请阅读Drools文档并区分绑定变量、全局变量、事实及其字段和右侧局部变量(在静态Java方法中) 要查看带有布尔字段的
declare
如何工作,请使用以下DRL代码:
declare Flag
flag: Boolean
end
rule "hoist a Flag"
when
not Flag()
then
insert( new Flag( true ) );
end
rule "a true Flag"
when
Flag( flag )
then
System.out.println( "The Flag.flag is true." );
end
您可以使用以下选项:
rule "Test"
when
a: TestClass( getFlag())
then
//some action
end
另请参见此答案:您可以使用以下选项:
rule "Test"
when
a: TestClass( getFlag())
then
//some action
end
另请参见以下答案: