0
受信パラメータに値を再割り当てすることはお勧めしません。代わりに一時的なローカル変数を使用してください。これらのPMDルール 'Avoid Reassigning'の正確な理由は何ですか?
受信パラメータに値を再割り当てすることはお勧めしません。代わりに一時的なローカル変数を使用してください。これらのPMDルール 'Avoid Reassigning'の正確な理由は何ですか?
コードの明瞭さ。何人かは、メソッドのボディ内のパラメータに値を代入するのは面倒だと考えられます。時には混乱するためです。開発者の中には、メソッドの実行中にパラメータに決して値が割り当てられないと常に仮定することを好む開発者もいます。
public class Foo {
private void foo(String bar) {
// ...
bar = "something else";
// ...
}
}
あなたはbar
は、発信者によって与えられた値であることを期待し、それが代わりに上書きされます。あなたは簡単にPMDの警告を避けるために、これを言い換えることができます。この例で行く
public class Foo {
private void foo(String bar) {
String myBar = bar;
// ...
myBar = "something else";
// ...
}
}
を、PMD違反に対応するためのより良い方法は、完全に「文字列バー」パラメータを除去することにより、メソッドのシグネチャを変更するのではないでしょうか?パラメータが単純に上書きされ、渡された値が実際に使用されることがない場合、メソッドの呼び出し元を値に渡すのはなぜですか? – lax1089
値が上書きされる前に使用されている可能性があります。例えば、私はパラメータ 'String bar =" C:/ temp "'を取得し、この値を 'bar'で作成し、次に' bar + = "/test.txt" 'と言うファイルを作成しますこの新しい値の 'bar'を使用します。この方法でパラメータ値が使用され、後でそれが再割り当てされます。 – Csuki
ああ、私はパラメータが再割り当ての前に使用されている場合はそれを保持する必要があります。警告の例から、これまで使用されていたかどうかはわかりませんでした。明確化のためにありがとう。 – lax1089