报告对 for 语句参数的赋值或其在 for 循环体内的修改。

虽然有时是有意为之,但这种结构可能会引起混淆,并且往往会导致错误。

快速修复会添加新变量的声明。

示例:


  for (String s : list) {
    // 警告:s 在循环内被更改了
    s = s.trim();
    System.out.println("String: " + s);
  }

在应用快速修复后:


  for (String s : list) {
    String trimmed = s.trim();
    System.out.println("String: " + trimmed);
  }

不报告没有更新语句的基本 for 循环中的赋值。 在这种情况下,赋值很可能是预期的,不能轻易移动到 for 循环的更新部分。

示例:


  for (int i = 0; i < list.size(); ) {
    if (element.equals(list.get(i))) {
      list.remove(i);
    } else {
      // 因为没有更新语句
      // 所以不报告 for 循环参数的修改
      i++;
    }
  }

使用检查增强的 'for' 循环参数选项指定是否还应报告增强的 for 循环参数的修改。