为什么下面给我一个“局部变量是冗余错误”?
public double depreciationAmount() {
double depreciationAmount = (cost * percentDepreciated);
return depreciationAmount;
}
原文由 collint25 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么下面给我一个“局部变量是冗余错误”?
public double depreciationAmount() {
double depreciationAmount = (cost * percentDepreciated);
return depreciationAmount;
}
原文由 collint25 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然这里不是这种情况,但如果需要一个冗余的局部变量(我曾经遇到过这种情况 - 没有详细说明),这里是如何抑制这个特定警告。
@SuppressWarnings("UnnecessaryLocalVariable")
public double depreciationAmount() {
double depreciationAmount = (cost * percentDepreciated);
return depreciationAmount;
}
原文由 seekingStillness 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
因为您可以在不使用局部变量的情况下轻松编写它。
因此,检查器认为局部变量是不必要的/多余的。
但是,我推测这 不是 编译器 _错误_。它可能是编译器 _警告_,或者更有可能是样式检查器或错误检查器警告。这是你可以忽略的东西,而不会对你的代码的正确性产生任何风险……正如所写的那样。
此外,我预测一旦代码被 JIT 编译(通过现代 Hotspot JIT 编译器……),两个版本之间将没有性能差异。
我不会尝试解决警告是否合适的问题1 。如果你觉得不合适,那么 “Local variable is redundant” using Java 解释了如何抑制它。
1 - 除了说期望当前一代样式检查器知道什么时候需要所谓的 解释变量 之外,这太过分了。首先,您需要让2组具有统计意义的开发人员就何时需要变量以及何时不需要变量的 可衡量3标准 达成一致。
2 - 是的,我知道。滥用术语。
3 - 它们 必须 是可衡量的,如果要由检查员实施,则需要就阈值应该是什么达成共识。