java - 意味 - no viable alternative at input 'create external'



Checkstyle: "隠しフィールド"エラーを解決する方法 (4)

私はこのcheckstyleエラーを取得しています:

'serverURL' hides a field

これで

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

理由は何か、それを解決する方法は?

https://src-bin.com


Answer #1

urメソッドでurパラメータ名を変更するだけです

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

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

楽しい...

ジガーパテル


Answer #2

このメソッドで使用できる変数はすでに定義されて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;
  }
}

Answer #3

パラメータと静的フィールドの名前は同じです。 それらの名前を変更するだけです。 一部の人は、 pすべてのパラメータの前に付ける命名規則に従います。 次に、フィールド名としてserverURLを、パラメータ名としてpServerURLを指定します。 または、単にチェックをオフにすることもできます。


Answer #4

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

開いた

Eclipse> Preferences> Checkstyle

あなたが使用しているcheckstyleの設定を見つけます(あなたが設定しているかもしれないし、デフォルトを使っているかもしれませんが、その場合はあなた自身のコピーを作成して編集することをお勧めします)。 それを選択し、右側の設定ボタンをクリックします。 リストで次の設定を見つけます:

コーディングの問題>非表示フィールド

設定を開きます(UIに「open」と呼ばれるボタンがあります)。

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





checkstyle