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