我有一个如下所示的大方法:
for (Person person : persons) {
if (!person.isValid()) {
continue;
}
....
boolean isDeleted = deletePersonFromDB1(person);
if (!isDeleted) {
continue;
}
....
}
基本上我想删除来自不同数据库源的人员列表。如果任何操作失败,我想继续下一个人。 我想像这样简化并将我的业务逻辑放入一个方法中:
for (Person person : persons) {
checkValidityAndDelete(person)
}
但不幸的是,我无法在我的方法 checkValidityAndDelete
中使用单词 continue
最佳答案
让您的 checkValidityAndDelete
方法返回一个 boolean 值来指示此人是否有效且已被删除:
private boolean checkValidityAndDelete(Person person) {
return person.isValid() && deletePersonFromDB1(person);
}
所以,如果checkValidityAndDelete
返回false
,则可以继续
,如果返回true
,则可以继续处理其余的代码逻辑。如果您愿意,也可以在不使用 Continue
的情况下实现此目的:
for (Person person : persons) {
if(checkValidityAndDelete(person)) { // If the person is valid,
// perform logic...
}
// if not valid, skip if, and continue to next person...
}
关于java - 在循环中使用 java "for each"和 "continue",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58377619/