如何访问本地变量?
void do1() {
final int i = 1; // (*)
class A {
int i = 2;
void do2() {
//how to access local variable i (*) ?
}
}
}
答案 0 :(得分:0)
你不能被类变量所遮蔽。克服它的最简单方法是重命名其中一个变量。
答案 1 :(得分:0)
你有几个选择:
将外部i
值传递给A
。
class Main {
public static void main(String[] args) {
new Main().do1();
}
void do1() {
final int i = 1; // (*)
class A {
A(int outerI) {
this.outerI = outerI;
}
private int outerI;
int i = 2;
void do2() {
System.out.println(outerI); // I want 1 here.
}
}
new A(i).do2();
}
}
或者使用合理的变量名称:
class Main {
public static void main(String[] args) {
new Main().do1();
}
void do1() {
final int i = 1; // (*)
class A {
int j = 2;
void do2() {
System.out.println(i);
}
}
new A().do2();
}
}