2016-12-08 1 views

答えて

1

コードの明瞭さ。何人かは、メソッドのボディ内のパラメータに値を代入するのは面倒だと考えられます。時には混乱するためです。開発者の中には、メソッドの実行中にパラメータに決して値が割り当てられないと常に仮定することを好む開発者もいます。

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"; 
     // ... 
    } 
} 
+0

を、PMD違反に対応するためのより良い方法は、完全に「文字列バー」パラメータを除去することにより、メソッドのシグネチャを変更するのではないでしょうか?パラメータが単純に上書きされ、渡された値が実際に使用されることがない場合、メソッドの呼び出し元を値に渡すのはなぜですか? – lax1089

+1

値が上書きされる前に使用されている可能性があります。例えば、私はパラメータ 'String bar =" C:/ temp "'を取得し、この値を 'bar'で作成し、次に' bar + = "/test.txt" 'と言うファイルを作成しますこの新しい値の 'bar'を使用します。この方法でパラメータ値が使用され、後でそれが再割り当てされます。 – Csuki

+0

ああ、私はパラメータが再割り当ての前に使用されている場合はそれを保持する必要があります。警告の例から、これまで使用されていたかどうかはわかりませんでした。明確化のためにありがとう。 – lax1089

関連する問題