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,
trash
或trash.getEmails()
可能为null。检查空值!