2011-10-15 8 views

答えて

35

すでにこのメソッドで使用できるserverURLという変数があります(受理している仮パラメータに加えて)。これは「シャドウイング」と呼ばれます。

ほとんどのJavaプログラマーは、このチェックをオフにしていると思います。なぜなら、それほど混乱しないからです。

例えば、これは、エラーが表示されます:

public class Foo { 
    private int bar = 0; 

    public void someMethod(int bar) { 
    // There are two bars! All references in this method will use the parameter bar, 
    // unless they are explicitly prefixed with 'this'. 
    this.bar = bar; 
    } 
} 
+1

メソッドが静的なので、私はこれを使用できません – Romi

+5

@CoryKendallこの問題の解決策は何ですか? –

+0

解決策は、小切手をオフにすることです。または、偶然、バーの名前を別のものにすることです。 –

6

パラメータと静的フィールドは、同じ名前を持ちます。それらの名前を変更するだけです。 一部の人は、すべてのパラメータの先頭にpという名前の命名規則に従います。フィールド名にはserverURL、パラメータ名にはpServerURLが使用されます。 または単にチェックをオフにすることができます。

6

eclipseで無効にして解決しました。私はこのページに上陸したときにそれを行う方法を探していました。私はトップ10のGoogleクエリで答えを見つけることができませんでしたので、難しい方法を見つけなければなりませんでした。そのために探している人のために、ここで私はそれやった方法です:>

オープン

のEclipse> PreferencesののCheckstyle

使用しているのCheckstyle構成を探す(あなたはそれを設定している場合がありますまたはあなたが使用していますその場合は自分のコピーを作成して編集することをお勧めします)。それを選択し、右側の設定ボタンをクリックします。リストで、次の設定を探す:問題>非表示フィールドのコーディング

オープン設定(UIで「開く」というボタンがあります)。

「パラメータ宣言」を選択解除します。 [OK]をクリックして[OK]をクリックし、[OK]をクリックします。

+0

何らかの理由で私のチェックスタイルに「コーディングの問題」の下に複数の「隠しフィールド」オプションがありました。私はそれらのすべてを無効にし、有効にして上記の指示に従い、それが機能しました。他の人が同じ問題を抱えている場合に備えて、プラグインをして分かりやすくしたい。 –

+0

チェッカーを回すよりもコードを修正するのはどうですか?コーリー・ケンドールの答え –

+0

@Hannesを参照してください。それはまさに** checkstyle **の解決策です。しかし、このページにリンクしている人は、チェックスタイルの停止を警告する方法を探しています。 –

2

だけ

private static void setServerURL(final String serverURLXYZ) { 
Utility.serverURL = serverURLXYZ; 
} 

にウル方法

private static void setServerURL(final String serverURL) { 
Utility.serverURL = serverURL; 
} 

でウルのparamの名前を変更するには、私はそれがコンストラクタで非常に一般的だと思います...

Jigarパテル

26

を楽しみ、 setterフィールド名がsetterパラメータ名と同じであることを設定します。これが私がこの設定をお勧めする理由です:

<module name="HiddenField" > 
    <property name="ignoreSetter" value="true" /> 
    <property name="ignoreConstructorParameter" value="true" /> 
</module> 

この方法では、他の隠しフィールドのケースは引き続き禁止されています。

関連する問題