我有一个 foreach
应该通过 arraylist
并在每次项目更改时执行一个操作。
所以它是这样的:
ID | Request
1 | z
2 | e
它向 1
发送一封电子邮件,内容为“您有 1 个请求”。然后向 2
发送电子邮件“您有 1 个请求”等等。
当列表中只有 2 个项目时,我的循环没有处理最后一个项目,我很难找到解决它的优雅方法。
Integer managerId = null;
Integer previousManagerId = null;
if(requests != null && requests.size() > 0){
for(Request request : requests){
managerId = request.getId();
if((!managerId.equals(previousId) && previousId != null)){
e.sendEmail(previousId, numReq.toString());
numReq = 0;
}
numReq++;
previousId = managerId;
}
//Suppose to address the last item. Fails when size == 2
if((!managerId.equals(previousId) && previousId != null)){
eusendEmail(previousId, numReq.toString());
}
最佳答案
循环的最后一条语句确保 previousId
在循环结束后始终等于 managerId
,因此它永远不会进入 if
.
我认为您总是希望发送最后一封电子邮件,因为您知道至少有一个请求。
关于java - Foreach 没有击中最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278062/