public void clearTrash()
{
    for (Email i1 : trash.getEmails()) trash.removeEmail(trash.getEmails().indexOf(i1));
}


我以为,如果rash.getEmails()为空,这将简单地返回,因为没有要迭代的内容,但是在使用空文件夹进行调试时,它将引发NullPointerException。为什么不起作用?

最佳答案

我不确定foreach循环的逻辑是什么,但是我建议您在迭代时使用Iterator删除项目,即:

Iterator<Email> it = trash.iterator();
while (it.hasNext()) {
    // some logic ....
    it.remove();
}


对于您的NPE,trashtrash.getEmails()可能为null。检查空值!

09-12 06:23