drools中规则内嵌套强制转换的编译错误



我正在使用#操作符,虽然有一个强制转换它工作得很好,但在同一规则中有两个它不编译。句子如下

configuration#RuleSetConfiguration.configurationRule[0].configurationRuleAction#FilteringAction.filteringActionType==$mspl1.configuration#RuleSetConfiguration.configurationRule[0].configurationRuleAction#FilteringAction

并返回以下编译错误:

[ERR 102] Line 62:87 mismatched input '#' in rule "verify_same_filtering_l4_behaviour" [Message [id=1, kieBase=rules, level=ERROR, path=/home/santiago/eclipse-workspace/DroolKieServer/target/classes/com/sample/rules/Rule.drl, line=62, column=0 text=[ERR 102] Line 62:87 mismatched input '#' in rule "verify_same_filtering_l4_behaviour"], Message [id=2, kieBase=rules, level=ERROR, path=/home/santiago/eclipse-workspace/DroolKieServer/target/classes/com/sample/rules/Rule.drl, line=0, column=0 text=Parser returned a null Package]]

我尝试使用括号,但结果是一样的。在规则上可以做的铸造有限制吗?

的问候我试着在规则中做两次铸造。预期的结果是编译良好,因为#操作符的使用是正确的,但是它返回编译错误

[Message [id=1, kieBase=rules, level=ERROR, path=/home/santiago/eclipse-workspace/DroolKieServer/target/classes/com/sample/rules/Rule.drl, line=62, column=0
text=[ERR 102] Line 62:87 mismatched input '#' in rule "verify_same_filtering_l4_behaviour"], Message [id=2, kieBase=rules, level=ERROR, path=/home/santiago/eclipse-workspace/DroolKieServer/target/classes/com/sample/rules/Rule.drl, line=0, column=0
text=Parser returned a null Package]]

问题是关于在列表后使用#操作符。取而代之的是,使用了标准的Java强制转换,它工作得很好:

((FilteringAction)((RuleSetConfiguration)configuration).configurationRule[0].configurationRuleAction) 

最新更新