gpt4 book ai didi

java - 返回并中断 foreach 循环 ArrayList

转载 作者:行者123 更新时间:2023-11-30 11:04:40 25 4
gpt4 key购买 nike

我尝试执行这个函数。

  private ArrayList<Note> notes;

//Adding notes in arraylist

public Note getNoteByDay(Calendar calendar) {
for (Note note : notes) {
if (note.getReminder().getTime() / Constants.DAY_IN_MILLIS == calendar.getTimeInMillis() / Constants.DAY_IN_MILLIS) {
Log.d("NOTE_ID", note.getName());
return note;
}
}
return null;
}

但是当我为不同的日历调用这个函数时

  1. 我总是第一个注意到。
  2. 我总是收到 2 次 Log.d() 调用。
  3. 当我使用 break; 而不是 return note; 时,我总是会调用 1 次 Log.d()

我的问题在哪里?

最佳答案

1) I always get first note.

那是因为您的第一个注释确实满足了您在 if 语句中的要求。

2) I always get 2 calls of Log.d().

这意味着问题不在这段代码中,而是在调用此方法的地方。使用调试器或堆栈跟踪来确定谁以及何时调用此方法。它也可以是多线程或多点击——无论您使用的是什么环境或平台。

3) When I use break; instead return note; I always get 1 call of Log.d() Where is my problem?

这只证实了情况 2。在中断时它返回 null,并且您的调用位置出现空指针异常并且不会再次调用。

底线 - 问题不在所提供的代码中,而是在调用此方法的地方。 Eclipse 有一个很好的特性 - 它显示了方法的使用位置 - 使用这个特性。

关于java - 返回并中断 foreach 循环 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29950453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com