首页 > 解决方案 > 为什么在 Groovy 中使用 'null' 执行 null 检查

问题描述

我正在研究与 JIRA 的 xRay 集成,如果标签为空实例,xRay 会抱怨。所以在 Jenkins 管道中,有以下代码来检查空实例

if (environment != 'null') {
    envPlatformArray.add(environment)
}
if (platform != 'null') {
    envPlatformArray.add(platform)
}

我正在考虑检查无实例应该执行如下:

if (environment != null)
{
    ...
}

或类似的东西

if (environment){
    ...
}

但在 Jenkins 上调试后,我惊讶地发现现有代码按预期工作。我不知道我是否错过了某些东西,或者默认情况下检查某些东西的正确方法不是 null 应该使用

instanceObj != 'null'

抱歉,如果已经问过这个问题,我会关闭它。感谢帮助。

标签: groovynull

解决方案


我不知道'null'Groovy 中字符串常量的任何特殊含义。Groovy 编译器都不是。

println null == null
println null == 'null'
println 'null' == null
println 'null' == 'null'
println !!null
println !!'null'

印刷:

true
false
false
true
false
true

我使用https://groovyconsole.appspot.com运行代码

看起来environmentplatformvars 正在从管道转向某个地方null'null'


推荐阅读