我最近才发现 PMD 并想用它改进我的代码。因此,我启用了所有规则(并获得了 47000 次违规:P)。无论如何,我对此有一个问题:
double mean = 0;
for (int p : points)
mean += full[1][p];
mean /= points.size();
在for each
循环中,PMD 告诉我局部变量 'p' 可以声明为 final。如果我将其更改为
double mean = 0;
for (final int p : points)
mean += full[1][p];
mean /= points.size();
它告诉我避免使用最终局部变量,将它们变成 fields。第二次违规对我来说真的没有意义。这样做的“正确”方法是什么?(我意识到可能有不同的方式,我只是想知道 PMD 希望它是怎样的。)