EqualsIgnoreCase在流口水上 [英] EqualsIgnoreCase on Drools

查看:122
本文介绍了EqualsIgnoreCase在流口水上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用正则表达式将drl重写为equalsIgnoreCase,因为我认为它更快.我不知道它的速度如何.但是,由于某些原因,流口水不喜欢它,并且出现未知错误.

I am trying to rewrite my drl from using regex to equalsIgnoreCase as I think its faster. I am not sure its faster though. However, drools doesn't like it for some reason and I get unknown error.

最上面的那个有效,但是使用equalsIgnoreCase的那个不起作用

The one on top works, but the one using equalsIgnoreCase doesn't

rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
    $vurderinger: Vurderinger(vurdering1909 != null &&
                              vurdering1909.verdi matches "(?i)^FOO$")
then
    modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end


rule "name"
salience 0
activation-group "flow"
dialect "mvel"
no-loop true
when
    $vurderinger: Vurderinger(vurdering1909 != null &&
                 eval("FOO".equalsIgnoreCase(vurdering1909.verdi)))
then
    modify( $vurderinger ) { setVurdering1913(new DroolsType("SHOW")) }
end

有人能发现错误吗?

推荐答案

在eval内,请坚持使用Java:引用绑定变量,请使用getter.

Within eval, stick to Java: refer to bound variables, use getter.

when
$vurderinger: Vurderinger($v: vurdering1909 != null &&
             eval("FOO".equalsIgnoreCase($v.getVerdi())))
then

编辑我不知道类定义,错误和版本,我建议使用eval/Java来保证安全,无论Drools版本是什么.对于6.3.0,您可以省略eval,它可以正常工作.

Edit Not knowing the class definition, the error and the version, I advise using eval/Java, to be on the safe side, no matter what the Drools version is. For 6.3.0, you can omit eval, and it works.

when
$vurderinger: Vurderinger(vurdering1909 != null &&
              "FOO".equalsIgnoreCase(vurdering1909.verdi))
then

这篇关于EqualsIgnoreCase在流口水上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆