这段代码怎么会抛出空指针异常?
for (Foo f : Vector<Foo> v)
{
f.doStuff(); // this line throws a NullPointerException
}
即使 Vector 为空,内部 block 不应该永远不会被执行吗?
最佳答案
vector
不为空。正如你所说,如果是的话,循环体将不会被执行。
如果您在该行上得到 NPE,则意味着 Vector
的一个(或多个)元素为 null
。
我还应该指出示例代码在语法上是错误的。它可能应该是这样的:
Vector<Foo> v = ...
for (Foo f : v)
{
f.doStuff(); // this line throws a NullPointerException
}
关于java - Vector 上的增强 for 循环中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942126/