0

以下のことが何とかできるかどうかを知りたいだけです。

public void foo(int a) {
    String a = Integer.toString(a);
}

明らかに、このコードは実際には機能しません。文字列aはパラメータを隠しますa。私が知りたいのは、「ねえ、これは実際にはaそこにある他のものです!」とコンパイラに明示的に伝える方法があるかということです。thisメソッドのパラメーターを除いて、キーワードに似たものを探しています。

このようなものはありますか、それとも別の変数名を使用する必要がありますか?

4

5 に答える 5

4

いいえ、この機能は Java にはありません。別の変数名を作成する必要があります。

于 2013-08-11T22:39:10.613 に答える
1

できるよ-

String ab = Integer.toString(a);

パラメータ変数と同じ変数名を使用できたとしても、混乱を招く可能性があります。Javaではそれを行うことはできません。他の変数名を使用してください。

また、メソッド パラメータを変更することはお勧めできません。むしろ、彼らに最終的なように宣言させてください-

public void foo(final int a) {
    String ab = Integer.toString(a);
}
于 2013-08-11T22:48:56.070 に答える
0

あなたがやりたいことのために、おそらく別の変数を作成する必要があります。例えば:

public void foo(int a1) {
    String a = Integer.toString(a1);
}
于 2013-08-11T23:16:57.023 に答える
0

同じ範囲で同じ変数名を 2 回使用することはできません。ただし、変数の名前、たとえばフィールドをオーバーライドできます。

class A
{
    int a;
    void f(int a)
    {
        this.a = a;
    }
}

フィールド a がオーバーライドさthisれ、オーバーライドされたフィールドを参照できるようになりました。

于 2013-08-11T23:22:44.583 に答える