根据documentation,以下是用于安全空引用的有效运算符:
!.
在IntelliJ中使用时,就规则的实际运行方式而言这不是问题,它仍然可以验证,但不能在IDE中正常编译。我在各自的变量名下出现模棱两可的“无法解析”错误。
例如:
dialect "mvel"
rule "Some rule"
when
$fact : Person( age <= 21, name!.equalsIgnoreCase("bob") )
then
// success
end
我可以很好地运行和测试它,但是在$fact
变量下得到一个带有“意外”或“无法解决”错误的波浪形标记。如果删除!.
运算符,并显式键入name != null && name.equalsIgnoreCase()
,则可以再次对属性/功能使用自动完成功能,并且“错误”消失了。即使没有变量,只有Person
对象也是如此。
是否需要包含设置或模块属性才能在IDE中支持此功能?
使用:
IntelliJ Ultimate 2019.1.3
JBoss Drools插件
行家:
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>7.23.0.Final</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>7.23.0.Final</version>
</dependency>