报告对循环体内 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);
  }

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

示例:


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

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