如果存在结构,例如,可能是null
的数组,对于此结构使用for / in循环是否有效?例如,
String[] a = someFunction(); //some function which might return null
for (String s : a) {
//do something
}
我想知道这段代码是否会崩溃。
答案 0 :(得分:7)
没有。你会得到NullPointerException
在这种情况下,我总是尝试返回空集合,而不是null集合。这样我就不用担心在没有事先null
检查的情况下进行迭代(你可能会认为这是一个 NullObject 模式)
答案 1 :(得分:1)
如果可能,让someFunction()
返回一个空数组。
否则,是的。你会得到NullPointerException
答案 2 :(得分:1)
我想知道这段代码是否会崩溃。
是。它可能会崩溃。
请注意,如果您返回一个空集合,这可能会破坏您的逻辑。当您没有返回非空值时,您必须确保不会发生意外情况。
我只需添加一个if
来检查someFunction()
返回的值是否为null
:
if(a != null) {
for (String s : a) {
//...
}
}