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
循环参数的修改。