【发布时间】:2019-05-16 02:11:32
【问题描述】:
基本上,有需要过滤的响应数据。响应数据由包含 ListClass 的 ListTrasporter 组成。它循环每个 ListTransporter 和每个具有空 ListClass 的 ListTransporter - ListTransporter 元素被删除。我使用了一个迭代器来执行此操作,这是代码:
Iterator<Transporter> iterator = item.getListTransporter().iterator();
while (iterator.hasNext()) {
Transporter trans = iterator.next();
List<TransporterClass> responseType = trans.getListClass();
if (responseType.isEmpty() || responseType.size() == 0) {
iterator.remove();
}
}
现在的问题是,当第一个元素包含被过滤和删除的数据时,由于这些代码行,它会导致 IndexOutOfBoundsException 错误:
Transporter firstItemTransporter = firstItem.getListTransporter().get(0);
Transporter secondItemTransporter = secondItem.getListTransporter().get(0);
它调用了第一个元素,但是第一个元素是空的。有没有办法解决这个错误。任何帮助表示赞赏,谢谢。
【问题讨论】:
-
firstItem.getListTransporter()- 先检查是否为空? -
为什么您会惊讶于循环可能会删除列表中的所有项目,从而使列表为空,从而使
get(0)失败?