此类表达式可能是自动重构所致,不太可能是开发者的本意。
该快速修复会简化此类表达式。
示例:
void f(int a) {
int x = a - a;
int y = a + 0;
int res = x / x;
}
在应用快速修复后:
void f(int a) {
int x = 0;
int y = a;
int res = 1;
}
请注意,在极少数情况下,建议的替换可能不完全等同于所有可能输入的原始代码。 例如,该检查会建议将 x / x 替换为 1。
但是,如果 x 为零,原始代码将抛出 ArithmeticException 或导致 NaN。
另外,如果 x 为 NaN,则结果也是 NaN。 此类行为不太可能出于本意。