Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 矢量上的增强for循环中出现空指针异常_Java_Nullpointerexception_Foreach - Fatal编程技术网

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是,但在另一行中。