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