PMD中不可避免的DD异常
问题描述:
我遇到了一个特例,我无法解决PMD中的DD异常。假设代码:PMD中不可避免的DD异常
BigDecimal amount = BigDecimal.ZERO;
for(int i=0;i<5;i++)
{
amount = amount.add(i);
}
return amount;
通过PMD运行这段代码,它会显示在量的声明中的DD异常。但是,如果我删除初始化,我会得到一个异常。这种情况如何通过PMD。任何人?
答
从"controversial rules"页,DataflowAnomalyAnalysis部分:
DD - 异常:在最近已定义的变量被重新定义。这是不祥的,但不一定是一个错误。
在这种情况下,这绝对不是一个错误。我建议你抑制或忽略这个特定情况的警告。 (在计算下一个值时使用原始值这一事实表明规则本可以写得更好,说实话)。
理解规则的原因并选择遵守哪些规则非常重要和哪里。例如,I 强烈的不同意“唯一一个退出点”规则 - 有很多次有多个退出点使得一种方法更容易阅读。有选择性,如果一个规则是通常罚款,但你已经验证你的代码在这种情况下是好的,suppress the warning就在那一个地方。
非常感谢很多伴侣....很少有人告诉我,我是正确的,并存在一些问题与天意(阅读PMD,月食).... – 2013-03-01 09:51:33