私はPMD Plug-in (4.0.0.v20130510-1000)
でEclipseを使用して、それらの違反の多くを得るています:thisでPMD:DD/DU異常
Found 'DD'-anomaly for variable 'freq' (lines '187'-'189').
Found 'DU'-anomaly for variable 'freq' (lines '189'-'333').
をSOそれは、これらの異常を割り当てることに関連していると言う、答えます読み取られない値。
// here I get a DD anomaly
double freq = 0;
try {
// here I get a DU anomaly
freq = Double.parseDouble(getFrequencyTextField().getText());
} catch (final NumberFormatException e) {
Log.e(e.getMessage());
}
if (freq < 10E6) doSomething();
私は初期設定を削除し、catch
ブロックでfreq = 0;
行を追加する場合は、DDは異常消えるが、私は異常の両方の割り当てをDUを得る:しかし、私は、この場合にはインスタンスの違反を取得します。
私の質問:どうしたらいいですか? PMDの好ましい解決策は何でしょうか?そして、このルールは正確に何を防止しようとしていますか(つまり、それは悪い習慣です)?
double freq = parseDouble(getFrequencyTextField().getText());
// later in the class (or in a utility class):
public static double parseDouble(final String input) {
try {
return Double.parseDouble(input);
} catch (final NumberFormatException e) {
Log.e(e.getMessage());
return 0;
}
}
そして、あなたは別のデフォルト値を持っている場合、あなたは、2つを追加することができます:あなたは別の方法にパースを抽出することにより(もう少し明確にし、別の懸念)この問題を回避することができ
説明のおかげで、それは私のために物事をクリアしました。また、提案に感謝します。私は常にコードスタイルの修正を感謝します。 (そのため、私は最初にPMDを使い始めました。) – brimborium