此类表达式可能是自动重构所致,不太可能是开发者的本意。
该快速修复会简化此类表达式。
示例:
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
。 此类行为不太可能出于本意。