を解決するために、私はこのCheckstyleは、エラーを取得しています:こののCheckstyle:どのように「非表示フィールド」エラーに
private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}
で
'serverURL' hides a field
理由、そしてどのようにそれを解決するために何ができますか?
を解決するために、私はこのCheckstyleは、エラーを取得しています:こののCheckstyle:どのように「非表示フィールド」エラーに
private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}
で
'serverURL' hides a field
理由、そしてどのようにそれを解決するために何ができますか?
すでにこのメソッドで使用できる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;
}
}
パラメータと静的フィールドは、同じ名前を持ちます。それらの名前を変更するだけです。 一部の人は、すべてのパラメータの先頭にp
という名前の命名規則に従います。フィールド名にはserverURL
、パラメータ名にはpServerURL
が使用されます。 または単にチェックをオフにすることができます。
eclipseで無効にして解決しました。私はこのページに上陸したときにそれを行う方法を探していました。私はトップ10のGoogleクエリで答えを見つけることができませんでしたので、難しい方法を見つけなければなりませんでした。そのために探している人のために、ここで私はそれやった方法です:>
オープン
のEclipse> PreferencesののCheckstyle
使用しているのCheckstyle構成を探す(あなたはそれを設定している場合がありますまたはあなたが使用していますその場合は自分のコピーを作成して編集することをお勧めします)。それを選択し、右側の設定ボタンをクリックします。リストで、次の設定を探す:問題>非表示フィールドのコーディング
オープン設定(UIで「開く」というボタンがあります)。
「パラメータ宣言」を選択解除します。 [OK]をクリックして[OK]をクリックし、[OK]をクリックします。
何らかの理由で私のチェックスタイルに「コーディングの問題」の下に複数の「隠しフィールド」オプションがありました。私はそれらのすべてを無効にし、有効にして上記の指示に従い、それが機能しました。他の人が同じ問題を抱えている場合に備えて、プラグインをして分かりやすくしたい。 –
チェッカーを回すよりもコードを修正するのはどうですか?コーリー・ケンドールの答え –
@Hannesを参照してください。それはまさに** checkstyle **の解決策です。しかし、このページにリンクしている人は、チェックスタイルの停止を警告する方法を探しています。 –
だけ
private static void setServerURL(final String serverURLXYZ) {
Utility.serverURL = serverURLXYZ;
}
にウル方法
private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}
でウルのparamの名前を変更するには、私はそれがコンストラクタで非常に一般的だと思います...
Jigarパテル
を楽しみ、 setterフィールド名がsetterパラメータ名と同じであることを設定します。これが私がこの設定をお勧めする理由です:
<module name="HiddenField" >
<property name="ignoreSetter" value="true" />
<property name="ignoreConstructorParameter" value="true" />
</module>
この方法では、他の隠しフィールドのケースは引き続き禁止されています。
メソッドが静的なので、私はこれを使用できません – Romi
@CoryKendallこの問題の解決策は何ですか? –
解決策は、小切手をオフにすることです。または、偶然、バーの名前を別のものにすることです。 –