在Vector上增强for循环中的空指针异常

woh*_*ley 2 java foreach nullpointerexception

这段代码如何抛出空指针异常?

for (Foo f : Vector<Foo> v)
{
    f.doStuff(); // this line throws a NullPointerException
}
Run Code Online (Sandbox Code Playgroud)

即使Vector为空,也不应该只执行内部块?

Ste*_*n C 10

Vector不是空的.如你所说,如果是,那么循环体将不会被执行.

如果你在该行获得一个NPE,这意味着的元素的一个(或多个)Vectornull.


我还应该指出示例代码在语法上是不正确的.它可能应该是这样的:

Vector<Foo> v = ...    
for (Foo f : v)
{
    f.doStuff(); // this line throws a NullPointerException
}
Run Code Online (Sandbox Code Playgroud)

  • @ user802421是的,但是在另一行. (2认同)