Jenkins Pipeline中Groovy语法如何返回NullObject而非字符串?
在Jenkins Pipeline Groovy中返回NullObject而非字符串"null"
问题原因
你当前的代码因使用字符串插值,导致"null"被解析为字符串类型,而非Groovy的NullObject:
BRANCH = "develop" BRANCH = "${BRANCH=="develop"?"null":"${BRANCH}"}" print (BRANCH.getClass()) // 输出 class org.codehaus.groovy.runtime.GStringImpl
正确语法
去掉字符串插值包裹,直接在三元表达式中返回null关键字(不要加引号):
BRANCH = "develop" BRANCH = BRANCH == "develop" ? null : BRANCH print (BRANCH.getClass()) // 输出 class org.codehaus.groovy.runtime.NullObject
说明
- Groovy中,
null是关键字,表示空对象,类型为NullObject;而"null"是普通字符串,类型为GStringImpl或String。 - 无需对变量做字符串插值包裹,直接使用原生Groovy三元表达式逻辑,即可正确返回
null对象。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

