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

在同一范围内不能有两次相同的变量名称。但是您可以覆盖变量的名称,例如字段:

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

现在字段 a 已被覆盖,使用this您可以参考覆盖的字段。

于 2013-08-11T23:22:44.583 回答
0

你不能这样做,但你可以重载方法

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

public void foo(String a) {
//    
}
于 2013-08-11T22:49:37.970 回答
0

对于您想要做的事情,您可能应该只创建另一个变量。例如:

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