Java 不确定为什么我';我在这个循环中得到一个空异常

Java 不确定为什么我';我在这个循环中得到一个空异常,java,for-loop,arraylist,Java,For Loop,Arraylist,我有一个类的构造函数,该类在ImageIcons的ArrayList上迭代,但中途由于NullPointerException崩溃。你知道为什么吗 for (ImageIcon i : dm.GetIcons()) { _labels.add(new JLabel(i)); } public ArrayList<ImageIcon> GetIcons(){ return _icons; } for(ImageIcon i:dm.GetIcons()) { _添

我有一个类的构造函数,该类在
ImageIcon
s的ArrayList上迭代,但中途由于NullPointerException崩溃。你知道为什么吗

for (ImageIcon i : dm.GetIcons())
{
    _labels.add(new JLabel(i));
}

public ArrayList<ImageIcon> GetIcons(){
    return _icons;  
}
for(ImageIcon i:dm.GetIcons())
{
_添加(新的JLabel(i));
}
公共阵列列表GetIcons(){
返回图标;
}

我尝试将
GetIcons
放入一个变量并设置一个断点,它有8个项目(正如我所期望的那样),但当我跨过循环2到3次时,它崩溃了。不知道我做错了什么。Java新手。有什么想法吗?

您在
ImageIcon
s的列表中有空元素

您可以先检查是否为空

for (ImageIcon i : dm.GetIcons())
{
    if (i != null) {
        _labels.add(new JLabel(i));
    }
}

仅当可以跳过空元素时,即根据应用程序的需要跳过空元素。

您的ImageIcon ArrayList可能有一些空对象或没有值的空对象。

您已将空引用添加到列表中。是时候进行一些调试,找出原因和位置了。