【发布时间】:2014-04-03 18:40:09
【问题描述】:
我在我的 android 应用程序中使用增强 for 循环来迭代状态对象列表。
for (Status stat : status)
timelineItems.add(new TimelineItem(stat));
这会产生以下 IndexOutOfBoundsException: java.lang.IndexOutOfBoundsException: 无效索引 0,大小为 0
我意识到发生这种情况是因为 ArrayList 的大小为 0,这意味着它是空的。我的问题是为什么它甚至一开始就进入循环不是为了保证不会发生这些问题而创建的增强 for 以及如何阻止它。
【问题讨论】:
-
您需要包含堆栈跟踪以及更多相关代码。我最初的回答是,你一定是误读了证据。
-
不确定但增强的 for 也会在列表为空时抛出 npe ,而不是仅仅不循环。 IMO 一个非常烦人的“功能”
-
不知道为什么,但如何阻止这种情况只需在其中添加
if(status.length > 0)语句。 -
@mastercork 这应该没有必要。
标签: java android indexoutofboundsexception