java - 在循环中使用 java "for each"和 "continue"

标签 java loops

我有一个如下所示的大方法:

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/

相关文章:

java - 为什么final和abstract only修饰符可以与java中的局部内部类一起使用?

java - IllegalStateException Java Google map 标记

sql - 如何多次使用不同的数据运行相同的sql

loops - Prime #程序识别假素数

java - 如何向由许多子类实现的接口(interface)方法添加断点或自定义代码?

java - 如何从 Android 中的匿名类中引用接口(interface)?

c - 结构数组指针

Python - 如何嵌套文件读取循环?

java - 制作命令行,如果语句不起作用

java - 具有多个参数的异步函数