Drools:如何为变量赋值;从「;使用PackageDescr生成规则时的预定义方法?
如何使用PackageDescr在规则中生成类似的内容Drools:如何为变量赋值;从「;使用PackageDescr生成规则时的预定义方法?,drools,Drools,如何使用PackageDescr在规则中生成类似的内容 $var: Number (doubleValue > 100 ) from myPredefinedFunction() 我尝试了以下方法: PatternDescr pt = new PatternDescr("Number","$var"); RelationalExprDescr ex = new RelationalExprDescr(">", false
$var: Number (doubleValue > 100 ) from myPredefinedFunction()
我尝试了以下方法:
PatternDescr pt = new PatternDescr("Number","$var");
RelationalExprDescr ex = new RelationalExprDescr(">", false, null, new ExprConstraintDescr("myPredefinedFunction()"), new ExprConstraintDescr("100"));
pt.addConstraint(ex);
但我得到的是:
$var : Number( myPredefinedFunction() > 100 )
您正在尝试将
MyPredefinedFunction()
设置为约束。约束是括号之间drools声明的一部分,例如MyObject(foo==“bar”)
。。。foo==“bar”
是一个约束
相反,您需要使用该方法设置源。这是声明的“来源”部分。此方法获取子类的一个实例——可能是此特定场景的一个实例
(或者,您可能需要setResource
而不是setSource
。使用仅限内部的API的问题在于它们没有文档记录,可能会在未经通知的情况下更改。我强烈建议不要走这条路。)