这不是一个问题,而是一个警示故事:我试图节省一些空间并在 Jenkins 声明式管道中声明我的变量,如下所示:
int a, b, c
Run Code Online (Sandbox Code Playgroud)
然后,我将它们初始化为:
a = b = c = 0
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我使用这些整数作为 for 循环中的计数器。我的脚本一遍又一遍地失败,抛出了一些异常:
java.lang.NullPointerException: Cannot invoke method next() on null object
Run Code Online (Sandbox Code Playgroud)
我确信我的列表是有效的,因为它是硬编码的。所以,我开始想知道这些计数器发生了什么,当我对它们调用 getClass() 时,Jenkins 高兴地告诉我它们不是整数,而是
org.codehaus.groovy.runtime.NullObject
Run Code Online (Sandbox Code Playgroud)
更改代码后
int a = 0
int b = 0
int c = 0
Run Code Online (Sandbox Code Playgroud)
一切都像魅力一样。只是想分享这个。也许它会帮助某人避免一些挫折。