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

标签 java nullpointerexception foreach

这段代码怎么会抛出空指针异常?

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/

相关文章:

java - Glpk java 输出

java - 使用 Java 集合排序时如何处理空值

java - 在使用 Map.Entry<String, Map<Date, List<SomeObject>>> 的三个 for-each 叠瓦式中,当我迭代时为什么在第二个 for-each 循环中出现异常?

c# - xaml 中定义的 Silverlight 控件在运行时为空

PHP循环遍历数组以从数据库中选择

C# IEnumerable、IEnumerator 重置函数未被调用

java - 按照原样将字符串写入文件中

java - 如何在 Java 中将 int[] 转换为 List<Integer>?

java - 在Java中模拟随机事件

java - 数组中的多态子类对象方法不起作用