在 Drools 中处理 'cannot be resolved to a variable'

Dealing with 'cannot be resolved to a variable' in Drools

我有以下规则

rule fpf_mdd_music_dans_drama salience 180
when
    $reslist : List(size > 0) from collect (NvbQueryResults(control() in ("fpf_mdd_music_dans_drama_p1",
                                                                           "fpf_mdd_music_dans_drama_p2")))                                                                                
    $qr : NvbQueryResults(control()== "fpf_mdd_r94_upf")
then
    res = (NvbQueryResults)$reslist.get(0);
    insert(new NvbQueryResults("fpf_mdd_music_dans_drama",res.count() + $qr.count()));
end

NvbQueryResults 看起来像这样

case class NvbQueryResults(control: String, count: Int = 0)

我的问题是当我尝试 运行 规则

时出现此错误
Rule Compilation error : [Rule name='fpf_mdd_music_dans_drama']
res cannot be resolved to a variable
res cannot be resolved

我不明白哪里出了问题,有人可以向我解释一下问题吗。

Drools 规则的右侧是常规 Java。在 Java 中,您不能在声明变量之前为其赋值。

NvbQueryResults res = $resList.get(0);