报告迭代集合或数组并且可以自动替换为增强型 for 循环 (foreach 迭代语法) 的 for 循环。

示例:


  for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String item = iterator.next();
    System.out.println(item);
  }

在应用快速修复后:


  for (String item : list) {
    System.out.println(item);
  }

使用报告索引的 'java.util.List' 循环选项查找涉及 list.get(index) 调用的循环。 这些循环通常可以替换为增强的 for 循环,除非它们修改了进程中的基础列表,例如通过调用 list.remove(index) 进行修改。 如果是后面这种情况,增强的 for 循环可能抛出 ConcurrentModificationException。 在某些情况下,list.get(index) 循环的操作速度也可能更快一些。

使用不报告无类型集合上的迭代选项可以忽略没有类型参数的集合。 这将防止创建 java.lang.Object 类型的增强型 for 循环变量以及在使用循环变量的位置插入转换。

仅当项目或模块的语言级别为 5 级或更高级别时,该检查才会进行报告。