Java 矢量上的增强for循环中出现空指针异常
这段代码如何抛出空指针异常Java 矢量上的增强for循环中出现空指针异常,java,nullpointerexception,foreach,Java,Nullpointerexception,Foreach,这段代码如何抛出空指针异常 for (Foo f : Vector<Foo> v) { f.doStuff(); // this line throws a NullPointerException } for(Foo f:Vector v) { f、 doStuff();//此行引发NullPointerException } 即使向量是空的,难道内部块就不能执行吗?向量也不是空的。正如您所说,如果是,那么循环体将不会被执行 如果在该行中得到NPE,则表示向量的一个(或
for (Foo f : Vector<Foo> v)
{
f.doStuff(); // this line throws a NullPointerException
}
for(Foo f:Vector v)
{
f、 doStuff();//此行引发NullPointerException
}
即使向量是空的,难道内部块就不能执行吗?向量也不是空的。正如您所说,如果是,那么循环体将不会被执行 如果在该行中得到NPE,则表示
向量
的一个(或多个)元素为null
我还应该指出,示例代码在语法上是不正确的。它应该是这样的:
Vector<Foo> v = ...
for (Foo f : v)
{
f.doStuff(); // this line throws a NullPointerException
}
向量v=。。。
对于(Foo f:v)
{
f、 doStuff();//此行引发NullPointerException
}
显示的语法不正确,不能在循环中同时声明步长变量(Foo f)和集合(Vector v)。如果集合(在您的示例中为v)为null,您将得到一个NullPointerException。如上所述,如果集合包含null元素,您还将得到一个NullPointerException。向量是否为空?你运行调试器了吗?v?+1、@wohanley的内容是什么,如果您的数据结构允许
null
值,那么在继续“执行任务”-If(f!=null){…}
之前,只需执行一次“检查”。但这对您来说可能不是问题。如果向量本身为空,您也会得到NPE。@user802421是,但在另一行中。