如何解决Drools:如何在使用PackageDescr 生成规则时为变量“from”预定义方法赋值?
如何使用 PackageDescr 在我的规则中生成类似的内容?
$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 )
解决方法
您正在尝试将 myPredefinedFuntion()
设置为约束条件。约束是括号之间的 drools 声明的一部分,例如。 MyObject( foo == "bar" )
... foo == "bar"
是一个约束。
相反,您需要使用 setSource
方法设置源。这是声明的“来自”部分。此方法采用 PatternSourceDescr
子类的实例 - 对于此特定场景可能是 FromDescr
。
(或者,您可能需要 setResource
而不是 setSource
。使用仅供内部使用的 API 的问题是它们没有记录并且可能会在没有通知的情况下更改。我强烈建议不要关闭这条路线。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。