我只是想知道以下是否有可能以某种方式完成。
public void foo(int a) {
String a = Integer.toString(a);
}
现在显然这段代码实际上不起作用;字符串a
隐藏参数a
。我想知道的是,有没有办法明确地告诉编译器“嘿,这实际上是上面的那个a
!” 我正在寻找类似于this
关键字的东西,除了方法参数。
有这样的事情还是我被迫使用不同的变量名?
我只是想知道以下是否有可能以某种方式完成。
public void foo(int a) {
String a = Integer.toString(a);
}
现在显然这段代码实际上不起作用;字符串a
隐藏参数a
。我想知道的是,有没有办法明确地告诉编译器“嘿,这实际上是上面的那个a
!” 我正在寻找类似于this
关键字的东西,除了方法参数。
有这样的事情还是我被迫使用不同的变量名?
不,这个功能在 java 中不存在。你应该只是组成另一个变量名。
你可以做-
String ab = Integer.toString(a);
即使您可以使用与参数变量相同的变量名,也会造成混淆。你不能在 Java 中做到这一点。只需使用其他一些变量名称。
此外,修改方法参数也不是一个好主意。相反,让他们宣布最终的喜欢-
public void foo(final int a) {
String ab = Integer.toString(a);
}
在同一范围内不能有两次相同的变量名称。但是您可以覆盖变量的名称,例如字段:
class A
{
int a;
void f(int a)
{
this.a = a;
}
}
现在字段 a 已被覆盖,使用this
您可以参考覆盖的字段。
你不能这样做,但你可以重载方法
public void foo(int a) {
foo(Integer.toString(a));
}
public void foo(String a) {
//
}
对于您想要做的事情,您可能应该只创建另一个变量。例如:
public void foo(int a1) {
String a = Integer.toString(a1);
}